解決Navicat無法連線到MySQL的問題
最近遇到了一件非常棘手的問題,用Navicat遠端連線資料庫居然連線不到,真是頭都大了。
網上查閱了一下原因,原來是沒有開通遠端許可權,好吧,下面我就來回憶一下自己怎麼處理這問題的!
大家都知道,用Navicat連線資料庫一般是這樣連得:
問題整理以及解決辦法
錯誤一:
錯誤原因:
本地IP(xxx.xxx.xxx.xxx)沒有訪問遠端資料庫的許可權。於是下面開啟本地IP(xxx.xxx.xxx.xxx)對遠端mysql資料庫的訪問許可權。
解決辦法:
1.首先遠端連線進入伺服器,在cmd中輸入mysql -u root -p,然後回車,輸入密碼後回車進入mysql命令列。
2.輸入use mysql;
3.輸入select user,password,host from user;
可以看到host中只有localhost主機。我們需要將xxx.xxx.xxx.xxx也新增到這裡才對。
4.新增方法如下:
輸入
grant all privileges on *.* to [email protected]”xxx.xxx.xxx.xxx” identified by “密碼”;(xxx.xxx.xxx.xxx用%也行,表示所有IP)
或者 GRANT ALL PRIVILEGES ON *.* TO ‘root’@’xxx.xxx.xxx.xxx’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
這相當於是給IP-xxx.xxx.xxx.xxx賦予了所有的許可權,包括遠端訪問許可權。
然後再輸入
flush privileges;
這相當於是重新載入一下mysql許可權,這一步必須有。
5.再次輸入select user,password,host from user;
可以看到host中已經有了新加的IP。
6.現在再次用Navicat for MySQl訪問遠端mysql資料庫,已經能正常打開了。
問題解決。
7.如果還是連線不到,那是不是 MySQL Server 綁定了本地地址,開啟 /etc/mysql/my.cnf,
找到:bind-address = 127.0.0.1
去除 IP 地址繫結,把它改為:bind-address = 0.0.0.0
然後重啟 MySQL Server:/etc/init.d/mysql restart
錯誤二:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘hostxxxxx’ (10061)
錯誤原因:
mysqld資料庫服務沒有啟動。
解決辦法:
檢查 :在windows 的工作管理員,或者 unix/linux 下 ps -aux | grep mysql 看一下。確認服務已經啟動。
處理 :啟動mysqld 服務
錯誤三:
防火牆開啟了
解決方法:
防火牆需要允許3306埠連線。