現在在很多的互聯網公司對於mysql資料庫的使用已經是不可阻擋的趨勢了,所以經常我們在項目開始的時候就會做的事情就是找一臺Linux伺服器,到上面去安裝個mysql,然後在開始我們的數據表的導入工作,但是我們不能一直占據著伺服器的遠程連接啊,所以經常我們會採用遠程工具去進行資料庫的操作處理,但是我們... ...
現在在很多的互聯網公司對於mysql資料庫的使用已經是不可阻擋的趨勢了,所以經常我們在項目開始的時候就會做的事情就是找一臺Linux伺服器,到上面去安裝個mysql,然後在開始我們的數據表的導入工作,但是我們不能一直占據著伺服器的遠程連接啊,所以經常我們會採用遠程工具去進行資料庫的操作處理,但是我們也會遇到如下狀況:
1 |
MYSQL CONNECT ERROR – 1130:Host ’202.43.**.**’ is not allowed to connect to this MySQL server”
|
出現上面拒絕連接的根本原因是因為在創建mysql賬戶時限制連接賬戶遠程登錄的,也就是說:除了當前mysql所在的安裝伺服器外,其他的ip(主機)都是不允許訪問的,儘管你的用戶名和密碼是正確的;其實不是MySQL預設不支持遠程,是MySQL的預設用戶root預設不支持遠程,說白了,也就是許可權問題,root用戶的Host預設就是127.0.0.1(localhost)最簡單的方法就是重新建了一個用戶,支持遠程訪問,而不用去修改root的許可權,建議這樣做,但是如果真的是需要採用root遠程操作嘛也不是沒有辦法,下麵提供兩種方案去解決:
①在/etc/mysql/my.cnf中的 [mysqld] 段註釋掉bind-address = 127.0.0.1
②用mysql -uroot -p 登陸mysql,然後採用以下方法開啟遠程訪問許可權;
1 2 3 4 5 |
#mysql -u root -p
#*******(密碼,預設的密碼是空)
mysql>use mysql;
mysql>update user set host = '%' where user = 'root' ;
mysql>flush privileges;
|
我們執行代碼之後我們可以看到我們的root用戶對應的host是%,表示允許所有ip連接,如下圖:
由於在上面的講解過程中我發現對於有些mysql的用戶來說對於mysql的預設密碼為空這個不是很在意,所以這裡對大家給個提醒就是剛剛安裝的mysql,在我們安裝結束之後記得要清除空用戶並及時修改密碼,下麵簡單記錄這兩個過程,簡單如下:
來源:MySQL資料庫的發佈版本知識講解 http://www.gooln.com/video/2211.html
1 2 3 4 5 |
mysql -u root -p
mysql> select user,host,password from mysql.user;
mysql>drop user '' @localhost;
mysql>update mysql.user set password = PASSWORD( '*********' ) where user= 'root' ;
mysql>flush privileges;
|
執行過程如下: