首頁 > 資料庫 > mysql教程 > 為什麼 Symfony 3 中 PDO::__construct() 失敗並顯示「伺服器發送未知字元集」以及如何修復它?

為什麼 Symfony 3 中 PDO::__construct() 失敗並顯示「伺服器發送未知字元集」以及如何修復它?

Mary-Kate Olsen
發布: 2024-12-31 14:01:10
原創
485 人瀏覽過

Why Does PDO::__construct() Fail with

了解PDO::__construct() 錯誤:伺服器發送未知字元集

嘗試時遇到PDO::__construct() 錯誤當伺服器傳輸客戶端不傳輸的字元集(255)時,從Symfony 3 連接到MySQL 資料庫就會出現認可。出現此問題的原因是 MySQL 8.0.1 中的更新,它採用 utf8mb4 作為預設字元集。

儘管 MySQL 和 PHP 在 Docker 容器中運行,但客戶端仍然不知道新的字元集。因此,它將伺服器的回應解釋為未知值並觸發此錯誤。

解決方案:升級客戶端

根本解決方案涉及升級客戶端。透過納入對 utf8mb4 的支持,客戶端可以有效地與伺服器通訊並解決問題。此升級可確保與變更後的字元集的兼容性。

臨時解決方法:修改伺服器的字元集

或者,存在臨時解決方法以保持與未升級客戶端的兼容性。透過將伺服器的字元集變更為 utf8,它可以滿足舊客戶端的限制。此調整可以透過修改/etc/my.cnf 檔案並使用以下設定重新啟動mysqld 來實現:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
登入後複製

雖然此解決方法解決了眼前的問題,但升級客戶端仍然是首選和長期的確保最佳相容性和性能的解決方案。

以上是為什麼 Symfony 3 中 PDO::__construct() 失敗並顯示「伺服器發送未知字元集」以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板