Измените параметры сортировки всего БД и решите нелегальное сочетание параметров сортировки. - PullRequest
0 голосов
/ 10 марта 2010

У меня проблема при выполнении LIKE '' запросов в mySQL

Это мои переменные

  • character_set_client utf8
  • character_set_connection utf8
  • символьная_сеть_базы_ латинских1
  • символьный_системный бинарный файл
  • character_set_results utf8
  • character_set_server latin1
  • character_set_system utf8
  • character_sets_dir C: \ xampp \ mysql \ share \ charsets \
  1. Как я могу изменить сопоставление БД? А таблицы? У меня есть:

    • Некоторые таблицы как MyISAM с latin1_swedish_ci
    • Некоторые таблицы как InnoDB с utf8_general_ci

    Полагаю, мне нужно преобразовать каждую таблицу InnoDB с помощью utf8_general_ci

  2. Я полагаю, DB установлен в значение latin1_swedish_ci, поэтому я должен также изменить это. Выполнение процесса из ответа 1) позволит избежать ошибки незаконного сочетания параметров сортировки в mySql, верно? Без изменения какой-либо строки кода ...?

1 Ответ

2 голосов
/ 11 марта 2010

Charset и collation могут быть установлены в utf8_general_ci независимо от того, какой движок вы используете. Поэтому не нужно менять MyISAM на InnoDB, если вам это не нужно, вы можете просто изменить параметры сортировки.

Для каждого столбца устанавливается кодировка и сопоставление. Вы можете изменить таблицу целиком, но это действительно влияет на каждый столбец. Помните, что набор символов и параметры сортировки в таблице на самом деле просто используются по умолчанию для новых столбцов, а набор символов и параметров сортировки в базе данных - это просто значения по умолчанию для новых таблиц.

Наконец, у вас правильно установлены все клиентские, соединительные и кодовые наборы результатов в utf8. Это важно, иначе MySQL будет транскодировать вход или выход. Убедитесь, что ваш клиентский код явно устанавливает их при настройке соединения с базой данных.

...