Когда я перехожу на использование MySQL 8, происходит сбой для подключения по двум причинам:
- MySQL 8 переключил протокол аутентификации по умолчанию с mysql_native_password на caching_sha2_password, а драйвер mysql php не поддерживает последний протокол. Я исправил это, создав пользователя, который использует механизм аутентификации mysql_native_password.
- MySQL 8 переключил набор символов сервера по умолчанию с utf8 на utf8mb4, что Драйвер mysql php не поддерживает. Меня застала эта проблема.
Код: Выделить всё
Warning: mysql_connect(): Server sent charset (255) unknown to the client.
Я пробовал изменить кодировку базы данных перед импортом данных, используя:
Код: Выделить всё
ALTER DATABASE
database_name
CHARACTER SET = utf8
COLLATE = utf8_unicode_ci;
Код: Выделить всё
$this->db_connect_id = mysql_connect($this->server, $this->user, $this->password);
mysql_set_charset("UTF8", $this->db_connect_id);
Я также знаю, что могу обновить PHP и переключиться с устаревшего расширения mysql на mysqli или PDO, но этот форум существует с 2005 года, и Я никогда не собираюсь использовать его; это просто для архивных целей. Я надеюсь, что можно просто заставить его работать без необходимости обновления.
Есть предложения?
Подробнее здесь: https://stackoverflow.com/questions/670 ... o-mysql-v8
Мобильная версия