通過linux遠端連線mysql,查詢結果中文為亂碼小結
首先本地辦公環境為windows使用的是navicat連線的mysql
navicat連線mysql時查詢結果正常
檢視編碼方式:
mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8
說明伺服器端設定正常
然後我又用linux遠端連線mysql,查詢結果中文亂碼
再次檢視編碼方式:
mysql> show variables like ‘%character%‘;
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8
臥槽,部分編碼方式怎麼變成latin1了,迅速檢查了下mysql伺服器端配置檔案編碼配置,全都設定了utf8,沒有問題
重啟一下mysql伺服器端,linux遠端連線查詢仍然為中文亂碼
看來不是伺服器問題,查詢客戶端版本
#rpm -qa mysql
mysql-5.1.73-7.el6.x86_64
伺服器端版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.6.25 |
+-----------+
1 row in set
看來是客戶端版本過老了
解決方法:
1、每次查詢前設定查詢結果集編碼為utf8 即set character_set_results=utf8
2、更新客戶端版本