使用apt-get來安裝mysql,安裝好以後發現安裝的是 MariaDB,以下,無需密碼既能夠登陸了。即便使用mysqladmin或mysql_secure_installation 設置好密碼,用密碼登陸能夠,不用密碼登陸也能夠。html
去google了好久,終於有發現了,是用戶插件問題。mysql
參見這裏:https://nixmash.com/post/fix-for-mysql-rootlocalhost-access-denied-on-new-installssql
跟安裝正常的mysql來比較下,以下ubuntu
正常mysql mysql> select user, plugin from mysql.user where plugin = 'mysql_native_password'; +-----------+-----------------------+ | user | plugin | +-----------+-----------------------+ | root | mysql_native_password | +-----------+-----------------------+ 8 rows in set (0.00 sec)
不正常的
MariaDB [(none)]> select user, plugin from mysql.user;
+------+-------------+
| user | plugin |
+------+-------------+
| root | unix_socket |
+------+-------------+
1 row in set (0.00 sec)
看到這裏應該發現問題了,按照正常的修改就好了socket
解決方法:post
root@ubuntu16:~# mysqld_safe --skip-grant-tables
root@ubuntu16:~# mysql
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('123456'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> select user, plugin from mysql.user;
+------+-----------------------+
| user | plugin |
+------+-----------------------+
| root | mysql_native_password |
+------+-----------------------+
1 row in set (0.00 sec)
root@ubuntu16:~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
參考:https://www.cnblogs.com/Dicky-Zhang/p/8000584.htmlgoogle