遠程鏈接mysql數據庫時出現以下提示信息:「MYSQL CONNECT ERROR – 1130:Host ’202.43.**.**’ is not allowed to connect to this MySQL server」php
在建立mysql帳戶時,限制鏈接帳戶遠程登陸。也就是說,除了當前mysql所在的安裝服務器外,其餘的ip(主機)都是不容許訪問的,即便你的用戶名和密碼是正確的。這時候就要修改用戶的訪問權限。mysql
首先是用root用戶登陸到mysql的安裝主機,而後進入mysql:sql
mysql -u root -p數據庫
root是mysql的最高受權用戶名,這時會提示你輸入密碼,正確輸入密碼後回車,進入mysql。回車瀏覽器
而後輸入以下命令:安全
grant all on 數據庫名.* to ‘數據庫帳戶名’@’%’ identified by ‘密碼’ with grant option;服務器
回車ide
flush privileges;工具
回車
注意:上面的單引號不能省,數據庫名.* 表示要開放的數據庫下全部表,若是該鏈接的全部數據庫都要開放,能夠用 *.* 代替。
‘數據庫帳戶名’@’%’ 這裏表示要開放的帳戶,百分號表示在任何主機都容許訪問。
若是以上兩步均顯示 「Query OK, 0 rows affected (0.00 sec)」,那麼說明命令已經成功執行,如今就能夠遠程鏈接你的mysql數據庫了。測試
(1).若是想賦予全部操做的權限
grant all on ... to 用戶名......
(2).若是想賦予操做全部數據庫的全部表的權限
grant ... on *.* to 用戶名......
(3).若是想賦予某個數據庫的全部表
grant ... on 數據庫名稱.'*' to 用戶名...... ([ * ]兩邊必定要加單引號)
(4).若是想賦予某個數據庫的某張表
grant ... on 數據庫名稱.表名 to 用戶名......
(5).若是想任何客戶端都能經過該用戶名遠程訪問
grant ... on ... to 用戶名@% ....... (要把IP地址改爲[ % ])
(6).改完了之後必定要從新啓動MySQL服務
用戶會存到Mysql服務器上的user表中,因此下面的兩種方法均可以解決這個問題:
1。 改表法。多是你的賬號不容許從遠程登錄,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%"
mysql -u root -p
mysql>use mysql;
mysql>update user set host = ’%’ where user = ’root’;mysql>select host, user from user;
mysql>flush privileges;
2. 受權法。例如,你想myuser使用mypassword從任何主機鏈接到mysql服務器的話。
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’%’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;
若是你想容許用戶myuser從ip爲192.168.1.3的主機鏈接到mysql服務器,並使用mypassword做爲密碼
GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’192.168.1.3’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;
若是仍是沒法遠程咱們可參考
一、Mysql的端口是否正確,經過netstat -ntlp查看端口占用狀況,通常狀況下端口是3306。在用工具鏈接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。
二、檢查用戶權限是否正確。
例如:用戶Tester,user表裏有兩條記錄:host分別爲localhost和%(爲了安全,%能夠換成你須要外部鏈接的IP)。
三、查看/etc/my.cnf中,skip-networking 是否已被注掉,須要注掉。
報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)
四、查看iptables是否停掉,沒關的狀況下,沒法鏈接。
經過:service iptables stop臨時關閉。
報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)
另外,咱們還能夠經過配置http通道來使Navicat遠程鏈接到數據庫,這樣作的好處是不須要前面繁雜的配置。在主機名IP地址那裏填寫LocalHost
用戶名與密碼一欄則填寫你所在的數據庫用戶名與密碼。
這時候還不能鏈接數據庫的,須要經過Http通道的形式進行數據庫鏈接。
點擊鏈接屬性標籤欄中的Http,以下圖所示:
勾選使用Http通道後,在通道地址一欄輸入你的網址與後臺文件地址。
例如:http://host/ntunnel_mysql.php
這裏說明一下通道地址,前半部份:http://host/是指你的服務器的域名,後半部份:ntunnel_mysql.php是指NaviCat客戶端後臺鏈接地址。這裏ntunnel_mysql.php能夠根據你本身的喜愛去重命名。那麼,這個ntunnel_mysql.php文件在哪裏找呢?
這個ntunnel_mysql.php文件在你點擊肯定保存了鏈接信息後,會自動生成一個php文件於NaviCat的文件根目錄下,,以下圖所示:
使用Ftp工具將該文件上傳到能通道地址目錄就好了。
如今鏈接測試就能成功了。