今天发现某项目的测试服务器被拿去升级,数据库也直接被删库重装了,完事儿本地客户端要连接一直连不上,以为是要配SSH,试了发现也没用。
仔细看报错信息,提示:Host is not allowed to connect to this MySQL server,翻译过来就是,不允许主机连接到此Mysql服务器。
那么也就是说,客户端向服务器的mysql发起远程登录被拒绝了。
期间,有先直接在服务器上尝试连接mysql,发现服务器上是能正常连接的,也就是mysql本身没问题。
那么,只需要解决这个不允许远程登录即可。
解决步骤如下:
1):mysql -u root -p
服务器登录mysql,密码输完~回车
2):use mysql;
切换到mysql库
- : select * from user \G;
执行这一命令,从查询结果可以看到,root用户的Host的值确实是”localhost”,表示只能本地连接,这里我们通过sql修改下值
4): update user set host = ‘%’ where user = ‘root’;
将root用户的host由‘localhost’修改为’%‘
- : FLUSH PRIVILEGES;
mysql有两种情况需要执行这个语句, 一是改密码,二是授权超用户。
本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
执行完毕,客户端再次尝试连接成功,over。