通过Navicat等数据库连接远程的mysql时,发现即使密码正确,但是还是报error no. 1045 access denied for user 'root'@'*****' (using password:YES)错误。
这是由于,MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问
所以必须给root修改可以远程访问的权限
步骤一:连接mysql
在连接服务器后,操作mysql系统数据库
命令为: mysql -u root -p
use mysql;
查询用户表命令:select User,authentication_string,Host from user;
这里也可以看出host默认都是localhost访问权限
步骤二:新增用户权限
接下来就是最重要的部分了:
1. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址。这里是新增了一个root用户记录。
2.flush privileges; 这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据
因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。
执行完这两步,就大功告成了!
命令总结
mysql -u root -p
输入密码
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
flush privileges; # 刷新权限