问题描述:windows上使用Navicat Premium连接linux服务器mysql出现1045错误。
重置密码之后(可以搜索相关步骤修改mysql密码),还是同样的错误。
搜索网上的解决方法之后发现是用户权限的问题。
进入服务器mysql之后,使用
SELECT User, Host, Password FROM mysql.user;
查看用户权限。
发现root用户只能本地登陆(localhost),如果想用root用户远程登陆,需要使用下面命令:
mysql> update user set host = '%' where user = 'root';
然后是刷新权限。参考:https://blog.csdn.net/w410589502/article/details/51535887/
flush privileges;
然后再使用Navicat Premium连接mysql,出现1251错误。
原因:mysql5.7版本以上加密方式不同,需要使用以下命令:
参考:https://www.jianshu.com/p/907ee3bd2722
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql密码'
之后连接mysql成功,还有问题可以留言交流。