Ubuntu下允許遠端連線MySQL資料庫
前幾天把自己的網站搭建起來之後,除錯的時候,直接的Ubuntu的命令列中,對資料庫進行了修改。
後來覺得太不方便了,所以就打算使用本機的視覺化介面操作資料庫,沒想到發生了一些問題。
為了幫助其他的同學我把問題和解決方案放在這裡。
系統:阿里雲伺服器(Ubuntu系統)
首先下載和安裝Navicat,然後點選連結,建立新的連結。配置連結資訊。
問題:當我測試連線的時候出現了,如下圖得問題。
解決方案:允許ubuntu下mysql遠端連線 。假設使用者為root,密碼為root,資料庫為wsyw126
具體過程如下:
1、在目標伺服器上(121.42.186.99),修改mysql的my.cnf檔案:
vim /etc/mysql/my.cnf
2、註釋掉bind-address,遮蔽其只對本地監聽,新增#號
#bind-address = 127.0.0.1
3、啟動MySQL服務,使其修改的配置生效
sudo restart mysql
配置完了伺服器的資料訪問許可權,此時還是不能遠端訪問MySQL資料庫
這是因為現在還沒有對伺服器上的資料庫或表賦予訪問許可權(GRANT)
4、在伺服器上,登入MySQL資料庫
mysql -uroot -proot
5、對資料庫wsyw126賦予許可權
grant all privileges on wsyw126.* to [email protected]
flush privileges;
解釋:
授權使用者能進行遠端連線
grant all privileges on *.* to [email protected]"%" identified by "password" with grant option;
flush privileges;
第一行命令解釋如下,*.*:第一個*代表資料庫名;第二個*代表表名。這裡的意思是所有資料庫裡的所有表都授權給使用者。root:授予root賬號。“%”:表示授權的使用者IP可以指定,這裡代表任意的IP地址都能訪問MySQL資料庫。“password”:分配賬號對應的密碼,這裡密碼自己替換成你的mysql root帳號密碼。
第二行命令是重新整理許可權資訊,也即是讓我們所作的設定馬上生效。
6、現在可以遠端訪問伺服器上的MySQL,連結介面如下:
(使用命令列連結:mysql -h121.42.186.99 -uroot -proot)
其他命令:
授權資訊在資料庫:mysql中。
use mysql
1、在伺服器上刪除使用者對資料庫的訪問許可權:
revoke all privileges on wsyw126.* from [email protected] identified by 'root';
2、在伺服器上刪除使用者root:
delete from user where user='root';
3、在修改生效:
flush privileges;
備註:
轉載請註明出處:http://blog.csdn.net/wsyw126/article/details/51637057
作者:WSYW126