Ubuntu中直接使用apt-get安装mysql后,Navicat连接报错ERROR1698(28000)- Access denied for user ‘root‘@‘192.168.3.10‘

#最开始选择在Ubuntu上用apt-get安装mysql,

安装完成后在使用Navicat远程连接安装的mysql时,报错1698(28000),笔者使用在全局的root权限下,用mysql的root用户登录,可以用设置的密码登录;但是使用服务器的非root用户,再登录mysql的root用户时,此时即报上述错误。

最后归其原因是:在mysql中用于身份验证的plugin插件被改为了auth_socket

select host,user,plugin from user;

auth_socket,这意味着任何来自任何主机(%表示任意主机)的root用户都使用auth_socket插件进行身份验证。auth_socket插件通常用于Unix套接字文件认证,它允许系统用户如果他们拥有与MySQL用户相同的用户名,则无需密码即可登录。也就是说,我原本认为的使用全局root用户登录mysql的root用户时,使用密码可以正常登录是错误的,此时是可以直接无需密码登录,笔者试验后发现果真如此,所以问题的最开始的出发点便错了。

要修改root用户的身份验证插件,您可以使用以下命令:

ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'your_password';

 替换your_password为您希望设置的密码。执行这些命令后,您需要运行FLUSH PRIVILEGES;来使更改生效。

FLUSH PRIVILEGES;

 



以上内容是在,已经

修改  用户表中 root的权限,从localhost修改为允许任何ip连接,即%

use mysql;

select Host,User from user;

update user set Host='%' where User='root'; #用户表中的权限已由'localhost'改'%'

修改mysql配置文件中的内容

vi /etc/mysql/mysql.conf.d/mysqld.cnf

bind-address=127.0.0.1  修改为  bind-address=0.0.0.0 允许来自任何地址连接

mysql中root用户的所有权限已经开放

show grants   #查询赋予用户的权限

笔者是通过后面文章解决的问题,加以总结形成上文,原文作者:唯一Chat  文章地址:[MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'-腾讯云开发者社区-腾讯云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值