標籤:mysql 帳號 sof log 使用者名稱 功能 col 安裝mysql 原因
首先明白一點並不是mysql禁止遠端連線,而是MYSQL的帳號禁止遠端連線。可能覺得我有點咬文嚼字了,不過我感覺分清這點還是很重要的。預設情況下,所有帳號都是禁止遠端連線的。在安裝MYSQL的時候,在設定ROOT密碼那裡有一個CHECKBOX,選中的話就開啟了ROOT的遠程登陸功能,預設是沒被選中的。
利用:
select * frommysql.user
查出所有的MYSQL使用者,可以發現預設情況下,這些記錄的host欄位的值全都是localhost,這個host欄位就是表示哪些機器可以利用此帳號串連到原生MYSQL。localhost當然就代表本機了。所以預設情況下別的機器無法串連。
所以要想開啟一個帳號的遠端連線,只要將這個帳號所對應的host欄位改成那個IP就行。
比如:
update user set host = ‘192.168.230.2‘ whereuser=‘ninty‘;
執行完此命令以後還要執行:
flush privileges;
來重新整理所有資料庫使用者的許可權配置資訊讓設定及時生效。或者重啟MYSQL。
將ninty這個帳號的host改成192.168.230.2,這樣192.168.230.2這台機器就允許通過ninty這個帳號來串連到原生MYSQL;不過用別的帳號仍然是不行的。將ninty的host改成192.168.230.2,就只有192.168.230.2這台機器可以通過ninty這個帳號來串連到原生MYSQL,其它的機器(包括本機)都無法進行串連。
如果想將一個帳號設定成任何IP都可以登陸,將host改成 % 就行;如果只能192.168.230這個網段的IP可以登陸,那就將host改成:192.168.230.%
一些常見的錯誤資訊:
ERROR 1130 (00000):Host ‘AAAAA-8HK8AISO‘ is not allowed to connect to this MySQL server
AAAAA-8HK8AISO應該是原生機器名,當MYSQL伺服器禁止本機使用相應的帳號串連的時候,就會暴這個錯誤。這時換一個允許本機去連的帳號就可以啦。
ERROR 1045(28000): Access denied for user ‘joejoe1991‘@‘TQSOFT-8HK8AISO‘ (using password:YES)
這個錯誤一般就是使用者名稱或者密碼錯誤,這時應該是允許本機串連的, 否則報的應該是上面那個錯。
ERROR 2003 (HY000): Can‘t connect to MySQL server on‘192.168.230.2‘ (10061)
這個應該是網路方面的原因連不到MYSQL,可能是IP或者連接埠不對,或者伺服器沒有開啟MYSQL或者防火牆擋住了串連 。
PS:Linux下安裝完MySQL預設使用者是沒有密碼的,開啟遠端連線之前最好將使用者設上密碼。
一個簡單的方法是:
shell命令下執行mysqladmin -u root password "密碼",可以通過訪問mysql資料庫命令:
[[email protected]~]#mysql -uroot -p → 敲斷行符號 輸入密碼進行驗證。
Linux下mysql實現遠端連線