MySQL DBA
MySQL DBA

Reputation: 5812

Mysql change column collation and character set of information schema

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

Upvotes: 15

Views: 23515

Answers (3)

Haim Evgi
Haim Evgi

Reputation: 125446

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];

Upvotes: 19

Rutamation
Rutamation

Reputation: 21

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!

Upvotes: 2

Chris Vest
Chris Vest

Reputation: 8672

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.

Upvotes: 12

Related Questions