首先运行这个命令:
sudo mysql
然后你应该检查你的 MySQL 用户帐户使用哪种身份验证方法。所以运行这个命令
SELECT user,authentication_string,plugin,host FROM mysql.user;
现在你已经可以看到类似的东西了:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
在上面的表格中,您可以看到所有 mysql 用户帐户状态以及如果您在插件列中看到 mysql_native_password 而不是 auth_socket 之前为 root 帐户设置了密码。
总而言之,为了更改您的 root 密码,您应该运行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
请务必将密码更改为您选择的强密码。
然后重新加载您的服务器以使您的新更改生效运行此;
FLUSH PRIVILEGES;
所以再次检查你的 mysql 使用的身份验证方法,通过这个命令:
SELECT user,authentication_string,plugin,host FROM mysql.user;
现在输出是:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
正如您在授权表中看到的,您的 root 帐户拥有 mysql_native_password
.
现在你可以退出 MYSQL shell
exit;
就是这样,你应该通过sudo service mysql restart重启mysql。
现在您可以使用密码轻松地以 root 帐户登录 mysql。