之前用Mysql都是在本地安装,程序也是在本地用,没有发现有什么问题,今天因为项目需要,把Mysql安装在公司服务器上了,然后在本地访问,发现提示Host '***' is not allowed to connect to this MySQL server,错误提示很明确,就是目标主机上的Mysql服务不允许连接,这让我想到了MSSQL,MSSQL是有一个地方设置是否允许远程访问的,那么MySql中应该也是有的吧?于是在MySql Workbench中找,但是没有找到修改的位置,于是百度了一下,终于弄清楚在哪儿改了,步骤如下:
1、打开命令提示符,执行Mysql -uroot -proot命令(如果提示Mysql不是内部或外部命令什么的,需要设置环境变量,我的mysql服务安装在C:\Program Files\MySQL\MySQL Server 5.7,我在环境变量的Path中加上了C:\Program Files\MySQL\MySQL Server 5.7\bin),我的mysql用户名是root,密码是root,所以是-uroot,-proot;登录后,如图所示:
2、执行use mysql;切换数据库,如图:
3、查询user表,看host和user情况,如下:
mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
所有的用户都是只能本机访问,我们需要把需要远程访问的用户的host改成%,于是我们执行以下语句:
update user set host='%' where user='root';
修改好host之后,我们要让它立即生效,还要执行这样一个语句:flush privileges;
操作完成之后,再用root远程访问就可以了。
上面的操作参照了:https://www.cnblogs.com/vathena/p/4012399.html