mysql 遠程登錄與表名大小寫問題
好久沒寫博客了,這段時間在學習一個開源的項目,裏面使用到了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即可,具體分析參見博客https://blog.csdn.net/wyzxg/article/details/44236259 。
如有不當,請批評指正,謝謝!
mysql 遠程登錄與表名大小寫問題