PDO 錯誤:來自MySQL 伺服器的未知字元集(255)
連接到MySQL 資料庫時,開發人員可能會遇到錯誤:" PDO::__construct():伺服器向客戶端發送了未知的字元集(255),請向開發人員報告。」在涉及Docker 容器和 Symfony 應用程式的情況下,可能會發生這種情況。
原因:
MySQL 版本 8 引入了一項更改,將預設字元集修改為 utf8mb4。但是,某些用戶端(例如某些 PHP 版本)無法辨識此字元集。當伺服器將其預設字元集傳達給客戶端時,客戶端缺乏理解會導致錯誤。
解決方案:
理想的解決方案是將客戶端升級到一個支援utf8mb4的。出於相容性目的,可以將伺服器的字元集調整為utf8,如下所示:
第1 步:編輯MySQL 伺服器設定
將以下行加入到/etc/my.cnf 並重新啟動MySQL:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
第 2步驟:重新啟動MySQL
重新啟動 MySQL 以套用變更:
service mysql restart
此修改將確保與不支援 utf8mb4 的舊客戶端的相容性。
以上是為什麼我的 PHP PDO 連線因 MySQL 8 中的「未知字元集 (255)」而失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!