Mysql change column collation and character set of information schema

22,569

Solution 1

As far as I know, you cannot run ALTER TABLE commands on the tables in information_schema. Instead you will probably want to take a look at the character_set_* variabes. You can see which variables are set to which values in your MySQL server with a show variables command:

show variables like "character_set_%";

The variable that has to do with meta data in MySQL, such as the information_schema tables, is the character_set_system variable. I think the my.cnf is the right place to set it.

There's more information on this page: UTF-8 for Metadata.

For ordinary tables, you change the character set of a table with an ALTER TABLE command:

alter table some_table convert to character set utf8;

To do this, you will need the "alter" privilege.

You can see which privileges your MySQL server supports with a show privileges command, and you can see which privileges are granted to your current user with a show grants command.

Solution 2

To change the character set and collation for all columns in an existing table, use:

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

Solution 3

alter table some_table convert to character set utf8;

awesome that worked great as far as i can tell for me, now i can use chinese in that tables!! and i can remove all the utf8_encode() utf8_decode() throughout my site!

Share:
22,569
MySQL DBA
Author by

MySQL DBA

Hi! I am MySQL DBA. New to MySQL

Updated on July 20, 2022

Comments

  • MySQL DBA
    MySQL DBA almost 2 years

    I want to change column collation and character set of system database information_schema...

    Can anyone give any input on how to do this? Is there any special priviledges i need for this