原文地址:http://www.111cn.net/database/mysql/46377.htm
有朋友可能會碰到使用Navicat for mysql 遠程連接 mySql數據庫會提示10061、1045錯誤或 2003-Can’t connect to MySQL on ’192.168.1.2’(10061),這個原因是因為MySQL不准許遠程連接。
最簡單的辦法是
MySQL遠程配置
| 代碼如下 | 復制代碼 |
|
|
|
打開3306端口,為防火牆設置例外,放行3306.
但你必須有root權限了,
還可以如下方法修改:
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數據庫了。
如果上面辦法不能解決我們可以開啟MySQL遠程訪問權限 允許遠程連接
1、登陸mysql數據庫
| 代碼如下 | 復制代碼 |
| mysql -u root -p |
|
查看user表
| 代碼如下 | 復制代碼 |
| mysql> use mysql; Database changed mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 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> use mysql; mysql> select host,user,password from user; |
|
這樣機器就可以以用戶名root密碼root遠程訪問該機器上的MySql.
3、實現遠程連接(改表法)
| 代碼如下 | 復制代碼 |
| use mysql; update user set host = '%' where user = 'root'; |
|
這樣在遠端就可以通過root用戶訪問Mysql
