15

我想更改系统数据库 information_schema 的列排序规则和字符集...

任何人都可以就如何做到这一点提供任何意见吗?我需要什么特殊的特权吗

4

3 回答 3

19

要更改现有表中所有列的字符集和排序规则,请使用:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];
于 2009-06-11T06:49:25.290 回答
12

据我所知,您不能ALTER TABLEinformation_schema. 相反,您可能想看看character_set_*变量。show variables您可以使用以下命令查看 MySQL 服务器中哪些变量设置为哪些值:

show variables like "character_set_%";

与 MySQL 中的元数据(例如information_schema表)有关的变量是character_set_system变量。我认为这my.cnf是设置它的正确位置。

此页面上有更多信息:UTF-8 for Metadata

ALTER TABLE对于普通的表,你可以通过一个命令来改变一个表的字符集:

alter table some_table convert to character set utf8;

为此,您将需要“更改”权限。

您可以通过命令查看 MySQL 服务器支持哪些权限show privileges,并且可以通过命令查看当前用户授予了哪些权限show grants

于 2009-06-14T14:12:16.473 回答
2
alter table some_table convert to character set utf8;

棒极了,据我所知,这对我来说效果很好,现在我可以在那张桌子上使用中文了!!我可以删除整个网站的所有 utf8_encode() utf8_decode() !

于 2011-02-24T01:58:55.803 回答