mysql遠端連線設定

xuxubaby發表於2013-11-04

資料庫不允許從遠端訪問怎麼辦?本文提供了三種解決方法:

  1、改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
  mysql -u root -pvmwaremysql>use mysql;
  mysql>update user set host = '%' where user = 'root';
  mysql>select host, user from user;

  2、授權法。例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。
   GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
  TH GRANT OPTION;
  如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼
   GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
  'mypassword' WITH GRANT OPTION;
  我用的第一個方法,剛開始發現不行,在網上查了一下,少執行一個語句 mysql>FLUSH RIVILEGES
  使修改生效,就可以了

  另外一種方法:
   在安裝mysql的機器上執行:
   1、d:\mysql\bin\>mysql -h localhost -u root
  //這樣應該可以進入MySQL伺服器
   2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION
  //賦予任何主機訪問資料的許可權
   3、mysql>FLUSH PRIVILEGES
  //修改生效
   4、mysql>EXIT
  //退出MySQL伺服器
   這樣就可以在其它任何的主機上以root身份登入啦。[/size]
 ========================================================================
 mysql資料庫遠端訪問設定方法

1、修改localhost
更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改成"%"
mysql>use mysql;
 mysql>update user set host = '%' where user = 'root';
 mysql>select host, user from user;
 mysql>FLUSH PRIVILEGES;
 2、指定授權
 使用myuser/mypassword從任何主機連線到mysql伺服器:
GRANT ALL PRIVILEGES ON *.* TO
'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
使用myuser/mypassword從ip為192.168.225.166的主機連線到mysql伺服器:
GRANT ALL PRIVILEGES ON *.* TO
'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
 3、泛授權
mysql -h localhost -u root
 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //賦予任何主機上以root身份訪問資料的許可權
mysql>FLUSH PRIVILEGES;

解決Mysql無法遠端連線的問題
1、Mysql的埠是否正確
 通過netstat -ntlp 檢視埠占用情況,一般情況下埠是3306。在用工具連線MySQl是要用到埠。例如My Admin\My Query Browser\MySQl Front等。
2、檢查使用者許可權是否正確
mysql庫的user表裡有兩條記錄:host分別為localhost和%(為了安全,%可以換成你需要外部連線的IP)。
3、檢視/etc/mysql/my.cnf中,skip-networking 是否已被注掉
 需要注掉
 報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)
 sudo gedit /etc/mysql/my.cnf
 #skip-external-locking
 #bind-address        = 127.0.0.1
 skip-name-resolve
 4、檢視iptables是否停掉,沒關的情況下,無法連線
 通過:service iptables stop臨時關閉。
 報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)

 

相關文章