码迷,mamicode.com
首页 > 数据库 > 详细

MySQL批量修改数据库的字符集

时间:2016-06-18 15:25:48      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

 

#走过,试过的路

UPDATE information_schema.`SCHEMATA` SET  DEFAULT_COLLATION_NAME=‘utf8_general_ci‘  WHERE DEFAULT_COLLATION_NAME<>‘utf8_general_ci‘;

#————尝试使用update语句来修改,这是走不通的,报以下错误 没有权限。

#错误代码: 1044
#Access denied for user ‘root‘@‘%‘ to database ‘information_schema‘

#经过度娘查找资料,需要使用alter语句才可以修改DB的字符集

ALTER DATABASE mydb CHARACTER SET utf8;

 

#第一步,找出MySQL实例中字符集不是utf8的数据库

SELECT * FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>utf8_general_ci;

#第二步,修改字符集 

#如果MySQL实例上有多个数据库需要将字符集改为utf8,我们可以采取的策略,如下:

#2.1 使用 CONCAT函数,相信大家看到以下的语句,应该能知道下一步怎么做了。

SELECT *,CONCAT( ALTER DATABASE ,schema_name, CHARACTER SET utf8;)strSql FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>utf8_general_ci;

#2.2 复制出上一个select的结果,粘贴,最后执行

ALTER DATABASE 3_11_测试数据库1 CHARACTER SET utf8;
ALTER DATABASE 3_3_testddb CHARACTER SET utf8;
ALTER DATABASE 410_3_test CHARACTER SET utf8;
…………

#第三步,检查验证是否修改成功

SELECT * FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>utf8_general_ci;

#<r>查询:SELECT * FROM information_schema.`SCHEMATA` WHERE DEFAULT_COLLATION_NAME<>‘utf8_general_ci‘ LIMIT 0, 1000
#返回了 0 行

#结果表明,已经没有字符集不是utf8的库了

大功告成!

MySQL批量修改数据库的字符集

标签:

原文地址:http://www.cnblogs.com/cyun/p/5596195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!