天天看點

在windows下使用Navicat for mysql 遠端連接配接linux系統下的 mySql資料庫會提示10061、1045錯誤

問題:使用Navicat for mysql 遠端連接配接 mySql資料庫會提示10061、1045錯誤或 2003-Can’t connect to MySQL on ’192.168.1.2’(10061),這個原因是因為MySQL不準許遠端連接配接。

方法:1

最簡單的辦法是

MySQL遠端配置

1.在mysql指令行下運作如下指令

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '這裡是要設定使用者的密碼(your paaaword)';           %表示多有機器,我這裡是使用root使用者

提示:如果有防火牆開啟,那就必須在防火牆放行mysql的3306端口

>>>  CentOS 7.0預設使用的是firewall作為防火牆,使用iptables必須重新設定一下

(1)、直接關閉防火牆

systemctl stop firewalld.service           #停止firewall

systemctl disable firewalld.service     #禁止firewall開機啟動

(2)、設定 iptables service

yum -y install iptables-services

如果要修改防火牆配置,如增加防火牆端口3306

vi /etc/sysconfig/iptables 

增加規則

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

儲存退出後

systemctl restart iptables.service #重新開機防火牆使配置生效

systemctl enable iptables.service #設定防火牆開機啟動

最後重新開機系統使設定生效即可。

方法:2

2.還可以如下方法修改:

(1):在服務端MySQL檔案夾下找到my.ini檔案。修改bind-address=127.0.0.1 為 bind-address=0.0.0.0 (在MySQL 5的my.ini中未發現此項)

(2):重新啟動MySQL服務。

測試連接配接情況:

如果沒有給遠端登入使用者添加所有機器都能通路的權限,将會出現“1045-Access denied for user root@IT(using password:NO)”,這表明需要添權重限;

添加指令如下:

 代碼如下    複制代碼

1)grant all on *.* to 使用者名@"%" identified by "密碼";

2)flush privileges;

完成以上步驟,就可以遠端通路MySQL資料庫了。

方法:3

3.如果上面辦法不能解決我們可以開啟MySQL遠端通路權限 允許遠端連接配接

(1)、登陸mysql資料庫   

mysql -u root -p

檢視user表

mysql> use mysql;

Database changed

mysql> select host,user from user;

+--------------+------

| host         | user | 

+--------------+------+

| localhost    | root | 

| 192.168.1.1 | root | 

2 rows in set (0.00 sec)

   可以看到在user表中已建立的root使用者。host字段表示登入的主機,其值可以用IP,也可用主機名,

   (1)有時想用本地IP登入,那麼可以将以上的Host值改為自己的Ip即可。

(2)、實作遠端連接配接(授權法)

   将host字段的值改為%就表示在任何用戶端機器上能以root使用者登入到mysql伺服器,建議在開發時設為%。   

   update user set host = ’%’ where user = ’root’;

   将權限改為ALL PRIVILEGES

mysql> grant all privileges  on *.* to root@'%' identified by "root";

Query OK, 0 rows affected (0.00 sec)

| host         | user |

| localhost    | root |

| %            | root | 

3 rows in set (0.00 sec)

這樣機器就可以以使用者名root密碼root遠端通路該機器上的MySql.

(3)、實作遠端連接配接(改表法)

use mysql;

update user set host = '%' where user = 'root';

這樣在遠端就可以通過root使用者通路Mysql

如果上面辦法不能解決我們可以開啟MySQL遠端通路權限 允許遠端連接配接

1)、登陸mysql資料庫   

2)、實作遠端連接配接(授權法)

3)、實作遠端連接配接(改表法)

      本文轉自xinrenbaodao  51CTO部落格,原文連結:http://blog.51cto.com/11832904/1951408,如需轉載請自行聯系原作者