iT邦幫忙

0

AWS RDS Aurora 簡體中文顯示 ?

  • 分享至 

  • xImage

AWS RDS Aurora
Parameters設定:
character_set_client = utf8mb4
character_set_connection = utf8mb4
character_set_database = utf8mb4
character_set_filesystem = binary
character_set_results = utf8mb4
character_set_server = utf8mb4

collation_connection = utf8mb4_unicode_ci
collation_server = utf8mb4_unicode_ci

DB 動態參數:
不知道為什麼都設定utf8mb4重啟後還會出現big5?
https://ithelp.ithome.com.tw/upload/images/20190708/20105223EatvVEWcmH.png

https://ithelp.ithome.com.tw/upload/images/20190708/20105223ltgij9vbxy.png

以及這三個動態參數是big5
mysql> select @@character_set_client;
mysql> select @@character_set_connection;
mysql> select @@character_set_results;
+-------------------------+
| @@character_set_results |
+-------------------------+
| big5 |
+-------------------------+
1 row in set (0.07 sec)

測試:
https://ithelp.ithome.com.tw/upload/images/20190708/20105223LX7rCWpT9U.png

繁體中文 ,日文 顯示正常
##簡體中文 ,韓文 顯示問號
有測試過把簡體中文從其他DB直接DUMP出來 ,再倒進Aurora但一樣顯示問號
(這邊判斷不會是複製貼上造成編碼上的問題,因也有手動打簡體字insert也是一樣)

測試set names utf8mb4
https://ithelp.ithome.com.tw/upload/images/20190708/20105223I9Zk2eqhHB.png
會變成全都是亂碼跟問號

請問這是RDS 參數有設定錯誤還是我DB有問題
再麻煩開釋 ,目前是AWS新手 謝謝~

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
Ray
iT邦大神 1 級 ‧ 2019-07-09 00:39:16
最佳解答

請改下這個指令:

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
看更多先前的回應...收起先前的回應...
qoo100116 iT邦新手 5 級 ‧ 2019-07-09 09:11:38 檢舉

執行完後結果跟上面的SET NAMES utf8mb4一樣
全變成亂碼跟問號,怎麼會跟VM自己rpm的mysql不一樣(rpm的不會出現亂碼問號)

Ray iT邦大神 1 級 ‧ 2019-07-09 09:47:55 檢舉

Aurora 本來就是 AWS 自己改出來的一個奇怪版本, 功能追不上正版, 跟正版的相容性也不好....而且他也不是 Open Source 的, 所以遇到問題我們無法自己找 source 來看, 你只能發 support ticket 請 AWS 幫你查...

不如用 AWS RDS for Mariadb 還比較正常一點...
Amazon RDS for MariaDB

qoo100116 iT邦新手 5 級 ‧ 2019-07-09 09:55:31 檢舉

感謝大神的回答~
要不是公司用RDS ,不然我覺得用VM還比較好
我再找找問題研究一下,這個神奇的亂碼

Ray iT邦大神 1 級 ‧ 2019-07-09 10:32:19 檢舉

RDS 還是可以用, 只是盡量選用 RDS for Mariadb/Mysql, 不要用 Aurora....

qoo100116 iT邦新手 5 級 ‧ 2019-07-09 15:31:48 檢舉

以解決~
在連線RDS時 需要加上--default-character-set=utf8mb4

雖然參數上有加skip-character-set-client-handshake = 1 (忽略client端的character-set),但在連線時並不會跟著DB的預設utf8mb4走 ,需要指定default-character-set才不會變成問號及亂碼。

我要發表回答

立即登入回答