最簡單的辦法是
MySQL遠程配置
| 代碼如下 |
複製代碼 |
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'your paaaword'; %表示多有機器。
|
開啟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; Database changed mysql> grant all privileges on *.* to root@'%' identified by "root"; Query OK, 0 rows affected (0.00 sec) mysql> select host,user,password from user; +--------------+------+-------------------------------------------+ | host | user | password | +--------------+------+-------------------------------------------+ | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 3 rows in set (0.00 sec) |
這樣機器就可以以使用者名稱root密碼root遠端存取該機器上的MySql.
3、實現遠端連線(改表法)
| 代碼如下 |
複製代碼 |
use mysql; update user set host = '%' where user = 'root'; |
這樣在遠端就可以通過root使用者訪問Mysql