MYSQL的character字符串转换的问题 因为数据库设计不当 导致里面100多个表默认的字符都是latin1 如何将这些表改成UTF8 谢谢各位了 最好有具体的步骤表中 有a,b,c这类表 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1。 先用mysqldump 将这个数据库导出,比如导出文件 sss.sql。2。 删除这个数据库3。用文件编辑工具,将 sss.sql 中的相关表的 create table 语句中的charset 改为utf84。 msyql -uroot -pxxx dbx < sss.sql 重新导入数据库。 表是否有数据?如果有数据的话,得把数据先备份出来,如:mysqldump -uroot -ppassword db_name > d:\db_bak.sql;如果db_bak.sql文件不大的话,直接用ultraedit打开,替换掉字符集中的latin1为utf8即可,然后再导入前面的备份文件: mysql -uroot -ppassword db_name < d:\db_bak.sql;如果这个备份文件很大的话,那只能自己写个存储过程,根据information_schema.tables系统表里面的信息循环,用动态语句进行truncate table 、alter table... default charset 'utf8' ,然后再导入前面的备份文件: mysql -uroot -ppassword db_name < d:\db_bak.sql;(注意:如果是这种方式的话,那要在mysqldump备份时加个参数 "--no-create-info" ) 直接操纵字符进行转换 看起来比较繁琐也容易出现问题 首先你要了解两种编码格式的定义 进行转换那么现在已经有类似的转换工具 就节省了你的手动转换 想Windows的文本工具 以及一些文本转换工具 这么多表要导入,不能直接修改database的字符么? 直接修改database 的默认字符集,只是修改了 默认字符集 对已经存在的表和数据并不起作用。 直接修改database 的默认字符集,只是修改了 默认字符集 对已经存在的表和数据并不起作用。参考 还有一个问题是我把默认的字符串改成了UTF8 为什么导入进MYSQL的数据都变成乱码了。 +-------------+-------------+---------------+------------------+--------------+------------+----------+------------+------------+----------------+| random_code | dealer_code | dealer_number | auto_sales | name | Postcode | brand | model_code | pay_date | swept_capacity |+-------------+-------------+---------------+------------------+--------------+------------+----------+------------+------------+----------------+| 0.207053732 | 3081A | 086 | 脡脧潞拢鹿脷脣脡 | 脨铆脠脢脨脟 | L-AETZKC | RC1 | 脠帽脰戮 | | 2005-11-8 | 2.5L| 0.321177468 | 30811 | 089 | 脡脧潞拢驴陋脗隆 | 脰脫脪氓禄陋 | GRX122L-AETZKC | RB0 | 脠帽脰戮 | | 2005-11-11 | 2.5L| 0.269732266 | 30812 | 088 | 脡脧潞拢潞脥脭拢 | 脧脛鹿煤禄陋 | 1972658 | GRX122L-AETZKC | RB0 | 脠帽脰戮 | | 2005-11-9 | 2.| 0.183729005 | 3081A | 086 | 脡脧潞拢鹿脷脣脡 | 脥玫脕谩路脡 | | GRX122L-AETZKC | RC0 | 脠帽脰戮 | | 2005-11-16 | 2.5L| 0.131892597 | 30814 | 091 | 脡脧潞拢脫脌麓茂 | 脠卯脨脣 | X122L-AETZKC | RC0 | 脠帽脰戮 | | 2005-11-16 | 2.5L+-------------+-------------+---------------+------------------+--------------+----------只是运行了这个语句 alter database nationwidedata character set utf8; 1。 先用mysqldump 将这个数据库导出,比如导出文件 sss.sql。c:> mysqldump -uroot -ppassword db_name > d:\sss.sql;2。 删除这个数据库mysql> drop database db_name 3。用文件编辑工具,将 sss.sql 中的相关表的 create table 语句中的charset 改为utf8winword.exe, 查找替换4。 msyql -uroot -pxxx dbx < sss.sql 重新导入数据库。建议看一下官方文档备份这一章,有详细的例子和说明。 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 mysql 不能 REPAIR TABLE,所有的表都不能REPAIR,表是好的。 请问怎样写着个条件 C# 链接mySQl数据库 增加数据的问题。 555求助, 本人安装了mysql 5.0 在DOS下测试一切正常,用网页全是连接不到数据库?为什么? 请问PostgreSQL在window上怎么安装 将文本导入mysql的小问题! 一个很弱智的问题,message表应该怎样设计 两个表链接的问题 求一个初级的SQL语句 求助!两表查询求和及求减 mysql慢日志问题 这种情况要建立个新表么?
2。 删除这个数据库
3。用文件编辑工具,将 sss.sql 中的相关表的 create table 语句中的charset 改为utf8
4。 msyql -uroot -pxxx dbx < sss.sql 重新导入数据库。
如果有数据的话,得把数据先备份出来,如:
mysqldump -uroot -ppassword db_name > d:\db_bak.sql;如果db_bak.sql文件不大的话,直接用ultraedit打开,替换掉字符集中的latin1为utf8即可,然后再导入前面的备份文件: mysql -uroot -ppassword db_name < d:\db_bak.sql;
如果这个备份文件很大的话,那只能自己写个存储过程,根据information_schema.tables系统表里面的信息循环,用动态语句进行truncate table 、alter table... default charset 'utf8' ,然后再导入前面的备份文件: mysql -uroot -ppassword db_name < d:\db_bak.sql;(注意:如果是这种方式的话,那要在mysqldump备份时加个参数 "--no-create-info" )
参考
--+----------+------------+------------+----------------+
| random_code | dealer_code | dealer_number | auto_sales | name | Postcode
| brand | model_code | pay_date | swept_capacity |
+-------------+-------------+---------------+------------------+--------------+----------
--+----------+------------+------------+----------------+
| 0.207053732 | 3081A | 086 | 脡脧潞拢鹿脷脣脡 | 脨铆脠脢脨脟
| L-AETZKC | RC1 | 脠帽脰戮 | | 2005-11-8 | 2.5L
| 0.321177468 | 30811 | 089 | 脡脧潞拢驴陋脗隆 | 脰脫脪氓禄陋
| GRX122L-AETZKC | RB0 | 脠帽脰戮 | | 2005-11-11 | 2.5L
| 0.269732266 | 30812 | 088 | 脡脧潞拢潞脥脭拢 | 脧脛鹿煤禄陋
| 1972658 | GRX122L-AETZKC | RB0 | 脠帽脰戮 | | 2005-11-9 | 2.
| 0.183729005 | 3081A | 086 | 脡脧潞拢鹿脷脣脡 | 脥玫脕谩路脡
| | GRX122L-AETZKC | RC0 | 脠帽脰戮 | | 2005-11-16 | 2.5L
| 0.131892597 | 30814 | 091 | 脡脧潞拢脫脌麓茂 | 脠卯脨脣
| X122L-AETZKC | RC0 | 脠帽脰戮 | | 2005-11-16 | 2.5L
+-------------+-------------+---------------+------------------+--------------+----------只是运行了这个语句 alter database nationwidedata character set utf8;
c:> mysqldump -uroot -ppassword db_name > d:\sss.sql;2。 删除这个数据库
mysql> drop database db_name 3。用文件编辑工具,将 sss.sql 中的相关表的 create table 语句中的charset 改为utf8
winword.exe, 查找替换4。 msyql -uroot -pxxx dbx < sss.sql 重新导入数据库。建议看一下官方文档备份这一章,有详细的例子和说明。
MySQL 中文显示乱码