Mysql更改信息模式的列排序和字符集

Mysql更改信息模式的列排序和字符集,mysql,database,system,collation,Mysql,Database,System,Collation,我想更改系统数据库信息的列排序规则和字符集\u架构 有人能就如何做到这一点提供意见吗?此操作是否需要特殊权限要更改现有表中所有列的字符集和排序规则,请使用: ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]; 据我所知,您不能在信息\u架构中的表上运行ALTER TABLE命令。相反,您可能需要查看字符集*变量。您可以使用show variables命令查看MySQL服务器中的

我想更改系统数据库信息的列排序规则和字符集\u架构


有人能就如何做到这一点提供意见吗?此操作是否需要特殊权限要更改现有表中所有列的字符集和排序规则,请使用:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];

据我所知,您不能在
信息\u架构
中的表上运行
ALTER TABLE
命令。相反,您可能需要查看
字符集*
变量。您可以使用
show variables
命令查看MySQL服务器中的哪些变量设置为哪些值:

show variables like "character_set_%";
alter table some_table convert to character set utf8;
与MySQL中的元数据有关的变量,例如
信息\u模式
表,是
字符集\u系统
变量。我认为
my.cnf
是设置它的正确位置

此页面上有更多信息:

对于普通表格,可以使用
ALTER table
命令更改表格的字符集:

show variables like "character_set_%";
alter table some_table convert to character set utf8;
为此,您需要“alter”特权

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

alter table some_table convert to character set utf8;

太棒了,就我所知,这非常好,现在我可以在表格中使用中文了!!我可以删除整个站点中的所有utf8\u encode()utf8\u decode()

修改系统数据库需要什么特权idea@MySQLDBA您将需要“ALTER”特权,请参见Christian answerMake在执行<代码> ALTER < /C>命令>之前,请考虑此警告。如果使用ALTALT表将列从一个字符集转换为另一个字符集,则MySQL尝试映射数据值,但如果字符集不兼容,则可能会丢失数据。