使用下面的命令在Ubuntu18.04上安装MySQL。
sudo apt install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev
然后发现在普通用户shell下无法使用root用户名登录MySQL。切换到root的shell后可以无需密码登录到MySQL。
sudo su
mysql
select user, plugin from mysql.user;
发现结果是这样的
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
发现MySQL的root用户的plugin被修改了,只有换成mysql_native_password才可以使用密码登录MySQL。
使用下面的命令更改plugin,同时设置MySQL的root访问密码
update mysql.user set authentication_string=PASSWORD('12345678'), plugin='mysql_native_password' where user='root';
flush privileges;
退出后,切换到普通用户shell并重启MySQL,即可使用root用户和上一步设置的root密码登录MySQL。