2015-08-20 4 views
1

Как изменить сортировку AsyncMysqlClient (или AsyncMysqlConnection, я не уверен, какой из них) до utf8?Изменить сортировку AsyncMysqlClient

Я прочитал документацию, но не могу найти способ изменения кодировки. Я, вероятно, пропустил его, если он на самом деле там.

ответ

1

По какой-то причине мы фактически не раскрываем способ установки кодировки асинхронного соединения в API. Было бы технически возможно использовать AsyncMysqlClient::adoptConnection, чтобы создать соединение через MySQLi и установить кодировку перед ее передачей в систему async, но я бы не рекомендовал делать это таким образом.

Вместо этого, как было предложено here, вы можете установить кодировку соединения в явном виде с помощью SQL с:

SET collation_connection = utf8mb4_unicode_ci; 
SET NAMES utf8; 

Если у вас есть доступ к конфигурации самого сервера MySQL, вы можете использовать init_connect иметь заявления, запущенные в начале каждого, не root, подключение:

[mysqld] 
init_connect='SET collation_connection = utf8mb4_unicode_ci; SET NAMES utf8;' 
default-character-set=utf8 
character-set-server=utf8 
collation-server=utf8mb4_unicode_ci 
+0

По какой-то причине настройка этих команд в конфигурации сервера не приносит успеха. Однако мне удалось это сделать, передав эти утверждения в виде запросов на каждом подключении – Victor

1

Думаете, вам нужно попытаться изменить кодировку на соединение, которое вы получаете через AsyncMysqlClient-> connect?

+0

Как именно? Метод 'connect' не имеет параметра' options' – Victor

+0

@Victor Не сам метод connect, а объект, который вы получили от метода connect? – Kordi

Смежные вопросы