錯(cuò)誤:1130 - Host 'xxxx' is not allowed to connect to this MySQL server
原因:本地IP(xxx)沒(méi)有訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)的權(quán)限媳否。
解決辦法:
1李茫、登錄服務(wù)器MySQL命令行客戶(hù)端:
mysql -u root -p
2推沸、輸入
user mysql;
select user,host from user;
可以看到host中只有l(wèi)ocalhost主機(jī)。我們需要將本地IP也添加到這里廊鸥。
3、輸入
grant all privileges on *.* to root@"xxx.xxx.xxx.xxx" identified by "密碼";
或者直接賦予所有IP遠(yuǎn)程訪問(wèn)權(quán)限
grant all privileges on *.* to root@"%" identified by "密碼";
然后輸入
flush privileges;
這相當(dāng)于重新加載mysql權(quán)限,這一步必須有该贾。
現(xiàn)在使用Navicat遠(yuǎn)程連接試一試,應(yīng)該可以正常打開(kāi)了捌臊。
4杨蛋、如果還是連接不到,就可能是mysql server綁定了本地地址
打開(kāi)/etc/mysql/mysql.conf.d/mysqld.cnf理澎,
找到:bind-address = 127.0.0.1
去除IP地址綁定逞力,把它改為:bind-address = 0.0.0.0
然后重啟mysql
service mysql restart
5、如果Mysql是在阿里云的云服務(wù)上糠爬,那么在完成以上步驟后寇荧,本地使用Navicat連接遠(yuǎn)程mysql可能仍然包10038錯(cuò)誤,這是因?yàn)榘⒗镌品?wù)器的遠(yuǎn)程3306端口默認(rèn)是關(guān)閉的执隧,需要登錄阿里云服務(wù)器揩抡,在安全組中添加一條配置規(guī)則,打開(kāi)3306端口镀琉,就可以正常連接了
如果嫌以上步驟太麻煩峦嗤,連接mysql有一個(gè)快捷方法。在Navicat連接屬性中選擇SSH選項(xiàng)屋摔,勾選使用SSH通道烁设,然后輸入服務(wù)器IP,用戶(hù)名和密碼钓试,然后范圍常規(guī)選項(xiàng)装黑,主機(jī)名或IP地址輸入localhost(或者127.0.0.1),用戶(hù)名和密碼輸入服務(wù)器mysql的用戶(hù)和密碼即可亚侠。
其原理是曹体,先通過(guò)SSH登錄到服務(wù)器,然后以本地IP訪問(wèn)Mysql硝烂,所以不需要更改Mysql的默認(rèn)設(shè)置箕别,而且阿里云服務(wù)器的22端口(SSH協(xié)議使用的端口)是默認(rèn)打開(kāi)的。