MySQL — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(викификация)
Строка 1: Строка 1:
[[Category:Admin]]
+
[[Категория:Admin]]
 
{{stub}}
 
{{stub}}
{{викифицировать}}
 
 
== MySQL ==
 
[http://linuxgangster.org/modules.php?name=Content&file=printout&id=8 Оптимизация настроек MySQL + Apache для нагруженного сервера]
 
  
 
=== О кодировках в MySQL 5.x ===
 
=== О кодировках в MySQL 5.x ===
  
В ALT:
+
В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.
1. Кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.
+
Это --character-set-server — кодировка, используемая '''сервером''' по умолчанию.
Это --character-set-server - кодировка, используемая _сервером_ по умолчанию.
 
 
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?
 
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?
  
 
Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:
 
Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:
character_set_server = utf8
+
character_set_server = utf8
collation_server = utf8_general_ci
+
collation_server = utf8_general_ci
  
 
Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:
 
Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:
[client]
+
[client]
default-character-set=cp1251
+
default-character-set=cp1251
  
 
При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой
 
При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой
init-connect="SET NAMES cp1251"
+
init-connect="SET NAMES cp1251"
в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client
+
в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.
Что позволяет серверу корректно воспринимать запросы и возвращать ответы.
 
  
 
Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо.
 
Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо.
 
''Что насчёт их кодировки в запросе?''
 
''Что насчёт их кодировки в запросе?''
 +
 +
=== Ссылки ===
 +
[http://linuxgangster.org/modules.php?name=Content&file=printout&id=8 Оптимизация настроек MySQL + Apache для нагруженного сервера]

Версия 15:48, 24 августа 2008

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


О кодировках в MySQL 5.x

В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали. Это --character-set-server — кодировка, используемая сервером по умолчанию. Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?

Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:

character_set_server = utf8
collation_server = utf8_general_ci

Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:

[client]
default-character-set=cp1251

При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой

init-connect="SET NAMES cp1251"

в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.

Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо. Что насчёт их кодировки в запросе?

Ссылки

Оптимизация настроек MySQL + Apache для нагруженного сервера