Database_Exception [2]: mysqli_connect (): Сервер отправил кодировку (255), неизвестную клиенту. Пожалуйста, сообщите разработчикам - PullRequest
0 голосов
/ 31 августа 2018

Установлен на локальной машине Docker и каркас Kohana.

Я не могу установить соединение с базой данных.

Произошла ошибка:

Database_Exception [ 2 ]: mysqli_connect(): Server sent charset (255) unknown to the client. Please, report to the developers

Файл datebase.php

return array

( 'default' => массив ( 'type' => 'MySQLi', 'соединение' => массив ( 'hostname' => 'mysql', 'database' => 'media', 'username' => 'root', 'password' => 'root', 'persistent' => FALSE, ), 'table_prefix' => '', 'charset' => 'utf8mb4', 'caching' => FALSE,

Как решить эту проблему? enter image description here

1 Ответ

0 голосов
/ 31 августа 2018

MySQL изменил кодировку по умолчанию на utfmb4 с версии 8. Но некоторые клиенты не знают эту кодировку. Следовательно, когда сервер сообщает клиенту свою кодировку по умолчанию, а клиент не знает, что означает сервер, он выдает эту ошибку.

См. Также https://bugs.mysql.com/bug.php?id=71606

Эта ошибка связана с MySQL Connector / C ++, поэтому она затрагивает не только PHP.

Ладно - я начал работать, изменив набор символов на 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

Я нашел эти настройки в ответе от 2010 года: Изменить набор символов MySQL по умолчанию на UTF-8 в my.cnf?

...