首頁 > 軟體

MySQL開放遠端連線許可權的兩種方法

2022-06-30 14:03:37

背景:

要求做一個評價系統,由於之前被人做過一小部分,有現成的資料庫(資料庫:MySQL 5.7 ,資料庫軟體:MySQL workbench 6.3 CE),為了省去安裝資料庫匯出匯入表的麻煩,想要直接遠端連線對方資料庫。

方法如下:

首先,檢查要連線資料庫的伺服器的防火牆等是否關閉,檢查與伺服器連線是否通暢(方法:在cmd控制檯中 輸入 ping ip地址)

其次通過網上查詢有兩種方法:

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,授權法。 

在安裝mysql的機器上執行: 

 1、d:mysqlbin>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身份登入啦。

自己測試兩種方法都不行,感覺很奇怪,於是自己測試:

找到MySQL的檔案位置,在cmd中輸入 cd mysql.exe的檔案位置(一般在MySQL安裝目錄下bin檔案下)

輸入mysql -u root -p 輸入登入密碼登入MySQL

 在MySQL裡直接輸入GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION ,會出現如下圖

這裡是由於沒有以英文分號結尾導致的。

輸入帶分號的語句試試:

提示未找到行。

我決定先還是採用第一種方法,按照第一種方法的程式碼,輸入:

        mysql -u root -p                  //這是登入
        mysql>use mysql;                 //
  mysql>update user set host = '%' where user = 'root';  //
  mysql>select host, user from user;                                  //

執行結果如下圖

連線遠端MySQL,還是沒連線上,於是再試試第二種方式

輸入:

        d:mysqlbin>mysql -h localhost -u root
        mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
        mysql>FLUSH PRIVILEGES;
        mysql>EXIT;

注意這裡一定要以英文分號結尾!!!

執行結果如下圖

這時沒有上面的ERROR 1133錯誤了,經過測試,已經能連線到遠端伺服器了。

總的執行步驟如下:

參考文章:

http://www.cnblogs.com/ycsfwhh/archive/2012/08/07/2626597.html

http://zhidao.baidu.com/link?url=knBlHE7vm912Lr_1c1OKlL_OYoyuuYQrRo4zLHbBYytBsjAP1VRCJFtZAOkBMMzDm_2kk69UlrE4RDdMwUO6X6SfFjRYKoUTMYnVPZrIvvm

總結

到此這篇關於MySQL開放遠端連線許可權的兩種方法的文章就介紹到這了,更多相關MySQL開放遠端連線許可權內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com