一般在安裝MYSQL後, 會先開放ROOT 可以由ANY HOST連入。
第一次使用Ubuntu 16, 郤發現無法又外部連入,已確認帳號設定沒問題,
找了很久,原來是因為 在mysql.config 中限制了只有127.0.0.1 可以連線,
參考內容如下:
一台ubuntu伺服器上3306埠運行MySQL服務,使用SQL-Front連接,失敗。
處理:
1.防火牆
登錄ubuntu伺服器,查看iptable或者ufw,確認不是防火牆的問題。
2.netstat -an|grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
發現mysql只監聽在本地127.0.0.1,3306埠就沒對外開放,外部當然無法訪問。
修改也很簡單, 進入到mysql的設定檔所在目錄(/etc/mysql/my.cnf)下,找到檔中的如下內容:
bind-address = 127.0.0.1
將bind-address注釋掉。
再次netstat查看:
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
3.還是無法訪問。接著查看資料庫連接帳戶的許可權。
>mysql -u root -p //root登錄
>select * from mysql.users;
%代表接受任意主機的連接。
修改:
GRANT ALL PRIVILEGES ON *.* TO 'use'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
4.重啟mysql服務/etc/init.d/mysql restart