Проблемы с настройкой набора символов базы данных с помощью mysqladmin
В командной строке оболочки:
mysqladmin -u"username" -p"password" --default-character-set=utf8 CREATE my_db_schema
--default-character-set=utf8
кажется, не имеет никакого эффекта, и я не понимаю, почему.
База данных создается, но набор символов latin1
с сопоставлением latin1_swedish_ci
,
Я нашел этот вопрос, который, казалось бы, та же самая проблема, но даже когда я попробовал пользователя без полномочий root, как предложил выбранный ответ, я получаю идентичное поведение:
(Я использую Windows и MariaDB, если это имеет какое-либо значение)
Я пробовал эти клиенты mysqladmin.exe:
- MariaDB 5.3.2 для Win32 (ia32) с набором символов по умолчанию
latin1
(нет.ini) - MySQL 5.0.77 для linux-gnu (i686) с набором символов по умолчанию
utf8
В обоих случаях, --default-character-set=utf8
или же --default-character-set=latin1
НЕ перезаписывайте настройки.ini /.cnf сервера MySQL.
3 ответа
В качестве обходного пути я бы предложил запустить:
echo "CREATE DATABASE my_db_schema DEFAULT CHARACTER SET utf8" | mysql -uusername -ppassword
--default-character-set=utf8
кажется, не имеет никакого эффекта, и я не понимаю, почему.База данных создается, но набор символов
latin1
с сопоставлениемlatin1_swedish_ci
,
Эти параметры не влияют на характер базы данных, таблицы или столбца при их создании.
default-character-set
является набором символов соединения с сервером - он гарантирует, что значения, выбранные вами из базы данных, передаются клиенту с правильной кодировкой для отображения.
На первый взгляд, я бы сказал, что это ошибка mysqladmin. Я бы дал знать разработчикам MariaDB об этом.
http://kb.askmonty.org/en/reporting-bugs содержит общие инструкции о том, как сообщать об ошибках (не обращайте внимания на использование сценария mysqlbug, поскольку он недоступен в Windows).
PS И если ошибка существует в MariaDB, она, вероятно, также существует в MySQL.