我刚刚在 Kubuntu 16.04.1 LTS 上安装了 mariadb-server
apt install mariadb-server
mysql_secure_installation
到目前为止一切顺利,然后我尝试设置 root 密码后登录
mysql -u root -p
Enter password:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
然后我就这么做了
service mysql status
我看到
61108 18:04:29 [Warning] 'user' entry 'root@localhost' has both a password and an authentication plugin specified. The password will be ignored.
在我尝试了各种方法(如清除、重新安装、mysql_install_db 等)来解决这个问题后,我最终还是遇到了这种情况。不应该是这样的,对吧?有什么解决办法吗?
答案1
我找到了这个https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/文章阐明了这个问题。
回顾一下,安装后请执行以下操作:
mysql -u root -p
UPDATE mysql.user SET authentication_string = PASSWORD('s0mePassword'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
现在我可以按照我习惯的方式登录。
我仍然不明白为什么这种情况会以 mysql_secure_installation 无法处理的方式发生改变,但无论如何,现在的情况就是这样。