PDA

Просмотр полной версии : [Вопрос] MySQL plugin error code 2019 in MySQL R41-4 plugin / MySQL Workbench 8.0 CE



Developez
19.06.2021, 19:55
Версия плагина MySQL: R41-4

Код подключения:

mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
mysql_query(mysql, "SET character_set_client = 'cp1251'", false); //
mysql_query(mysql, "SET character_set_results = 'cp1251'", false); // Для поддержки кириллицы
mysql_query(mysql, "SET SESSION character_set_server='utf8'", false); //

Выдает ошибку подключения 2019.

Дефайны:

#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "server"
#define MYSQL_DATABASE "tactics-database"
#define MYSQL_PASSWORD ""


MySQL просто установлен на комьютер, ни phpMyAdmin, ни Open Server. Просто MySQL с официального сайта, шема и таблица в ней были созданы через MySQL Workbench.

Шема:
https://i.imgur.com/45A1riz.png

Таблица:
https://i.imgur.com/X5ebymD.png

Видел где-то, что collation должен быть utf8_general_ci, но при попытке изменить на него, Workbench выдает сообщение о том, что никаких изменений нет.

Если убрать SET запросы для поддержки кириллицы ошибка остается. Батя, шо делоть? Engine: Inno DB.

Developez
19.06.2021, 21:32
Решение вопроса:

Всё дело на стороне MySQL сервера. Ошибку
'CConnection::CConnection - establishing connection to MySQL database failed: #2019 'Can't initialize character set unknown (path: compiled_in)'
фиксим при помощи этого источника (https://github.com/pBlueG/SA-MP-MySQL/issues/203).
Далее, возможно появится ошибка
'CConnection::CConnection - establishing connection to MySQL database failed: #2059 'Plugin caching_sha2_password could not be loaded: Не найден указанный модуль.',
она решается при помощи этого источника (https://stackoverflow.com/questions/49194719/authentication-plugin-caching-sha2-password-cannot-be-loaded).

Траблы с чарсетами. Могу дать только ссылки на решения что мне помогли, кто больше разбирается в теме - можете объяснить всё подробнее для тех кто ещё может столкнуться с такими проблемами :thank_you:

Ошибки отследить можно при помощи включения логирования, путем добавления
mysql_log(ERROR | WARNING) в OnGameModeInit().
Посмотреть их в logs/plugins/mysql.log.