最簡單的辦法是
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;
可以看到在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