Поиск

Наборы символов и порядки сопоставления на уровне сервера

Сервер MySQL обладает серверным набором символов и порядком сопоставления, которые могут быть ненулевыми.
MySQL определяет серверный набор символов и порядок сопоставления следующим образом:

  1. В соответствии с установками опций при старте сервера.
  2. В соответствии со значениями, установленными во время выполнения.

На уровне сервера решение достаточно простое. Серверный набор символов и поря­док сопоставления изначально зависит от опций, которые используются при запуске mysqld. Вы можете применить —default-character-set для установки символьного набора, и к нему добавить —default-collation для установки порядка сопоставления. Если вы не указываете символьный набор, это то же самое, что задать —default-character-set=latinl. Если вы указываете только символьный набор (например, latinl), но не порядок сопоставления, это то же самое, что задать —def ault-character-set=latinl -default-collation=latinl_swedish_ci, поскольку latinl_swedish_ci — порядок сопоставления по умолчанию для набора latinl. Таким образом, следующие три команды дают одинаковый эффект:
shell mysqld
shell mysqld — default-character-set=latinl shell mysqld — default-character-set=latinl \ —de fault-collation=latin l_swedi sh__ci
Единственный способ изменить эту установку - перекомпилировать сервер. Если вы хотите изменить символьный набор сервера по умолчанию и его порядок сопоставления при сборке сервера из исходных текстов, используйте аргументы сценария configure: —with-charset и —with-coll at ion. Например:
shell ./configure —with-charset=latinl или:
shell ./configure —with-charset=latinl \ — wi th-co llation=latinl_ge rmanl_ci
Как mysqld, так и configure проверяют, чтобы комбинация символьного набора и порядка сопоставления была корректной. Если это не так, каждая из программ выдает сообщение об ошибке и завершается.
Текущий символьный набор и порядок сопоставления, действующие на сервере, дос­тупны через значения системных переменных character_set_server и collation_server. Их значение можно изменять во время работы сервера.