我想更改系统数据库information_schema ...
的列排序规则和字符集任何人都可以提供有关如何执行此操作的任何输入吗?我需要特殊的特权吗
答案 0 :(得分:19)
要更改现有表中所有列的字符集和排序规则,请使用:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];
答案 1 :(得分:11)
据我所知,您无法在ALTER TABLE
的表格上运行information_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;
为此,您需要“更改”权限。
您可以使用show privileges
命令查看MySQL服务器支持的权限,您可以使用show grants
命令查看当前用户授予的权限。
答案 2 :(得分:2)
alter table some_table convert to character set utf8;
非常棒,据我所知,现在我可以在那张桌子上使用中文!我可以删除整个网站上的所有utf8_encode()utf8_decode()!