Po zakończeniu tej samej aktualizacji, na Ubuntu, miałem ten sam problem.
Co było dziwne było to, że
sudo /usr/bin/mysql_secure_installation
zaakceptuje moje hasło i pozwala mi go ustawić, ale nie mogę zalogować się jako root
przez klienta mysql
musiałem zacząć MariaDB z użytkownikiem
sudo mysqld_safe --skip-grant-tables
uzyskanie dostępu jako root, podczas gdy wszyscy inni użytkownicy mogą nadal uzyskiwać dostęp do konta.
Patrząc na mysql.user
stole zauważyłem root kolumna plugin
jest ustawiony na unix_socket
natomiast wszystkich innych użytkowników jest ustawiony na „mysql_native_password”. Krótkie spojrzenie na tę stronę: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ wyjaśnia, że gniazdo Unix umożliwia logowanie się przez dopasowanie procesu uid
procesu działającego na kliencie z procesem użytkownika w tabeli mysql.user
. Innymi słowy, aby uzyskać dostęp do mariadb jako root
, musisz być zalogowany jako root.
Rzeczywiście ponownym mój MariaDB demona z uwierzytelniania wymaganego mogę się zalogować jako root z
sudo mysql -u root -p
lub
sudo su -
mysql -u root -p
Uczyniwszy to myślałem o tym, jak uzyskać dostęp bez konieczności wykonywania sudo, co jest tylko kwestią uruchomienia tych zapytań mysql:
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
lub
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
Następnie ponownym MariaDB:
sudo service mysql stop
sudo service mysql start
i voila miałem dostęp od nasady mojego konta osobistego vi mysql -u -p
UWAGA ten sposób zmniejsza SECURITY Przypuszczalnie Deweloperzy MariaDB zdecydowali się na taki dostęp z uprawnieniami roota bez ważnego powodu.
Myśląc o tym, cieszę się, że muszę sudo mysql -u root -p
, więc wracam do tego, ale pomyślałem, że opublikuję moje rozwiązanie, ponieważ nie mogłem znaleźć gdzie indziej.
Czy próbowałeś resetu hasła dla root? –