Я'м пытаюсь подключиться к базе данных MySQL из приложения на Symfony 3. Но когда пытаюсь создать схему в MySQL из командной консоль Symfony, я получаю эту ошибку: ПДО:: метод__Construct(): сервер отправил символов (255) неизвестный клиент. Пожалуйста, сообщите разработчикам
Обе PHP и MySQL запущены в контейнеры Docker.
Версия MySQL: 8.0.1
Версия PHP: 7.1.3
Водитель: pdo_mysql
кодировка: в кодировке utf8
о доставке: в "в MySQL:хост=с MySQL;имя базы данных=базы данных;кодировка=utf8 в; том, что"
Любые идеи?
В MySQL 8 изменены умолчанию кодировку для utfmb4. Но некоторые клиенты Дон'т знаю эта кодировка. Следовательно, когда сервер передает кодировку по умолчанию для клиента, и клиент не'т знаю, что сервер означает, он выдает эту ошибку.
См. также https://bugs.mysql.com/bug.php?id=71606
Это ошибка против MySQL разъем/C++, поэтому он'ы, затрагивающих больше, чем просто в PHP.
Ладно—я получил его на работу путем изменения кодировки в utf8, чтобы быть совместимым с необновленных клиентов. Я добавил Это в файл /etc/мой.CNF и перезапустить mysqld в:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
Я нашел эти параметры в ответ от 2010 года: https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf
Принято отвечать меня спас (спасибо, Билл!!!), но я столкнулся с еще одной проблемой, просто хотел выделить некоторые детали на моем опыте -
После обновления на MySQL 8.0.11, я испытал такой же проблемой как ОП при использовании PHP'mysqli_connect с ()
функция. В мой каталог MySQL (в моем случае, usr/местные/MySQL с
), я создал мой.файл CNF`, добавил контент в принятой ответ, а затем перезапустить сервер MySQL. Однако, это дало новую ошибку:
mysqli_connect(): сервер запрошенный метод проверки подлинности от клиента [caching_sha2_password]
Я добавил строку default_authentication_plugin = mysql_native_password
, так `моя.теперь КНФ выглядела как:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin = mysql_native_password
и я был хорошо идти!
Дополнительные ссылки: https://github.com/laradock/laradock/issues/1392
Работает для меня и GT;
окружающей среды:
localhost
Windows 10
PHP 5.6.31
MYSQL 8
комплект:
default-character-set=utf8
о:
c:\programdata\mysql\mysql Сервер 8.0\мои.Ини
C:\Program файлы\\сервер MySQL в MySQL 5.5\мои.Ини
Инструменты, что помогает:
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
mysql> show variables like 'char%';
mysql> show variables like 'collation%';
\m/
Я столкнулся же проблема, поэтому я переустановить MySQL и 8 с другой метод проверки подлинности "и использовать устаревший метод проверки подлинности(сохранить в MySQL 5.X совместимости)" тогда работают правильно.
Выбрать второй способ проверки подлинности при установке.
Удачи!
У меня случай был, что я был с использованием RDS (версия для MySQL БД 8) АРМ и подключения моего приложения с помощью команды EC2 (код на PHP 5.6 был в EC2).
Вот в этом случае, так это РДС нет моего.КНФ параметров поддерживаются группы параметров аус. Относятся: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
так что я сделал:
Создал новую группу параметров, а затем редактировать их.
Искали всем персонаж-набор параметров. Они пустые по умолчанию. редактировать их по отдельности и выберите utf8 из выпадающего списка.
character_set_client, character_set_connection, character_set_database, character_set_server
А потом самое главное, экземпляр перезагружается РДС.
Это решило мою проблему и связи с рнр5.6 в MySQL 8.X работает отлично.
надеюсь, что это помогает.
Пожалуйста, посмотрите это изображение для лучшего понимания. введите сюда описание изображения
найти раздел[тема]в
РНР.в ini и добавьте строку mysqli как.default_charset = "в кодировке UTF-8"
в. Подобные изменения требуют моей секции [Pdo_mysql] " и " [с mysqlnd]
.
Вопрос, как представляется, в частности с MySQL версии 8.0 и выше решение работать с PHP версии 7.2, и решение это'т работать с PHP 7.0
Я решил эту проблему, добавив следующий код в моей *в/etc/мой.файл файл* -
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
После этого,я зашел в настройки системы и остановить сервер MySQL и начал снова, и это сработало.
У меня была такая же проблема, чтобы подключиться к локальной системе.
Я проверил в списке услуг (выполнения>услуги.МСЦ->ввод) wampmysqld64 был остановлен.
Перезапустить его. и смог войти.