標籤:netstat 接收 注意 ase stat bsp 注釋 串連失敗 details
好久沒寫部落格了,這段時間在學習一個開源的項目,裡面使用到了mysql,好久沒使用mysql了。在使用過程中遇到了一個問題,遠程登陸。報錯資訊很明顯,串連失敗。解決思路如下:
1. 首先檢查到伺服器網路是否可達,發現並沒有什麼問題。
2. 查看使用者名稱密碼是否正確,通過在伺服器上面登陸查看也沒有問題。
3. 檢查mysql服務是否啟動,連接埠是否正確: ps -aux|grep "mysql" netstat -apn|grep "3306",並檢查設定檔中的連結是否正確,一切正常。
4. 查看選擇的使用者是否支援遠程登入。select * from mysql.user\G; 經過查證work使用者的Host值為%萬用字元,也沒有問題。
這就比較蛋疼了,查看mysql的設定檔 vim /etc/mysql/mysql.conf.d/mysqld.cnf 發現設定檔中存在綁定屬性bind-address=127.0.0.1,首先解釋一下這個參數的含義: 此參數主要是配置mysql的監控IP具體的取值如下:
| * |
接收所有的IPv4 或 IPv6 串連請求 |
| 0.0.0.0 |
接受所有的IPv4地址 |
| :: |
接受所有的IPv4 或 IPv6 地址 |
| IPv4-mapped |
接受所有的IPv4地址或IPv4邦定格式的地址(例 ::ffff:127.0.0.1) |
| IPv4(IPv6) |
只接受對應的IPv4(IPv6)地址 |
看來問題就出現在這了,如果此值為localhost,那麼mysql就只能接受本地訪問,至於遠端存取的請求就無法接受了,所以我們索性把這一行給注釋掉,一切OK。(注意: 如果在生產環境上面必須設定為指定IP,否則任何人都可以訪問,勢必會產生不必要的危險)
問題二: 在運行時出現了另外一個錯誤,table not exist,但是查看錶時確實存在,索性將代碼中的表名(大寫) 放到終端進行查詢,還是出現table not exist錯誤。修改設定檔中lower_case_table_names參數為1即可,具體分析參見部落格44236259 。
如有不當,請批評指正,謝謝!
mysql 遠程登入與表名大小寫問題