1.问题原因:
出现这是错误是因为 mysql 默认的 root 用户使用了 UNIX auth_socket_plugin 的用户认证方式,我们有下面两种方式处理问题:
- 修改 root 用户认证方式为 mysql_native_password plugin,即改为使用密码登录
- 使用系统当前的用户名创建一个数据库用户(推荐)
2.解决方案:
****方法一:修改 root 用户认证方式为 mysql_native_password plugin****
首先登陆MySQL使用sudo.
修改my.cnf中[mysqld]中内容,增加 skip-grant-tables
重启服务 sudo /etc/init.d/mysql restart
root即可免密登录,登录后修改plugin配置,修改root密码,再注释掉配置
再重启服务
<pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">sudo mysql -uroot</pre>
修改MySQL-root用户的登陆方式.
<pre style="margin: 0px; padding: 0px; overflow: auto; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">1 USE mysql; 2 UPDATE user SET plugin= 'mysql_native_password' WHERE user='root'; 3 FLUSH PRIVILEGES; 4 exit;</pre>
重启MySQL服务,登陆root用户.