Mysql изменить сопоставление столбцов и набор символов информационной схемы - PullRequest
15 голосов
/ 11 июня 2009

Я хочу изменить сопоставление столбцов и набор символов системной базы данных information_schema ...

Кто-нибудь может дать какие-либо отзывы о том, как это сделать? Есть ли какие-то особые привилегии, которые мне нужны для этого

Ответы [ 3 ]

19 голосов
/ 11 июня 2009

Чтобы изменить набор символов и параметры сортировки для всех столбцов в существующей таблице, используйте:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];
11 голосов
/ 14 июня 2009

Насколько я знаю, вы не можете запускать ALTER TABLE команды для таблиц в information_schema. Вместо этого вы, вероятно, захотите взглянуть на переменные character_set_*. Вы можете увидеть, какие переменные и какие значения установлены на вашем сервере MySQL, с помощью команды show variables:

show variables like "character_set_%";

Переменная, связанная с метаданными в MySQL, такими как таблицы information_schema, является переменной character_set_system. Я думаю, что my.cnf - правильное место для его установки.

На этой странице больше информации: UTF-8 для метаданных .

Для обычных таблиц вы изменяете набор символов таблицы с помощью команды ALTER TABLE:

alter table some_table convert to character set utf8;

Для этого вам понадобится привилегия «изменить».

Вы можете увидеть, какие привилегии поддерживает ваш сервер MySQL, с помощью команды show privileges, а также узнать, какие привилегии предоставлены текущему пользователю с помощью команды show grants.

2 голосов
/ 24 февраля 2011
alter table some_table convert to character set utf8;

Круто, это отлично сработало, насколько я могу судить, теперь я могу использовать китайский в этих таблицах !! и я могу удалить все utf8_encode () utf8_decode () на моем сайте!

...