解决mysql远程连接出现1045错误

解决mysql远程连接出现1045错误,第1张

我在使用Navicat远程连接linux上的mysql的时候,出现错误

1045 - Access denied for user 'root'@'localhost'(using password:YES)

导致这个问题的原因是

root默认只有本机访问的权限,要通过其他机器访问,必须授权

具体 *** 作如下

GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION

 flush privileges

这样设置后,就可以正常连接了。

错误如下:1045 Access denied for user 'root'@'localhost' (using password:YES)

想起来有可是在navicat添加的root@'%'用户,可能密码和现在新版本5.7的加密不同了,导致密码不对.

所以解决方法是更新用户密码.

注意5.7版本密码保存的列是 authentication_string ,密码要用函数password加密.

更新密码的SQL是 update user set authentication_string=password('密码') where user="root"

下面是Windows平台下 *** 作步骤:

配置文件my.ini ,在mysqld下面添加skip-grant-tables,意思是可以直接回车登录,保存退出。重启mySQL,然后运行cmd

输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。

1.切换到mysql数据库:use mysql

2.给root用户设置新密码,

mysql>update user set authentication_string=password('密码') where user="root"

3.刷新数据库mysql>flush privileges

4.再修改my.ini,把刚加入的"skip-grant-tables"这行删除或者添加#注释,保存退出再重启mysql服务就可以了。

一些参考命令

#删除之前配置 drop user 'root' @ '%'

#配置远程登录 CREATE USER 'root' @ '%' IDENTIFIED BY password( '你的密码')

#授权 GRANT ALL ON *.* TO 'root' @ '%'

#更新权限 flush privileges

#查看用户,主机,加密方法 select user,host,plugin from user

access denied for user root

意思是root用户无法访问远程mysql数据库,跟系统没有关系

重点检查root用户的用户名和密码,以及远程网络的ip地址和端口是否正确


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/6145034.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存