之前用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