mysql字符集从latin1转到utf8的问题

csdnpro 2006-10-16 10:05:58
我打算将mysql服务器从4.1升级到5.0,同时将原来默认的字符集latin1转换到utf8。

现在采用的方法是先用mysqldump导出数据库中的数据,然后使用ultra edit将文件存储格式从ASCII转换为utf8,再将文件中的latin1字符串替换为utf8,最后导入数据库。

但是这个过程遇到一些问题有:在转换过程成一些字符串变成乱码,同时丢失后半个单引号导致数据不能导入。修改这些错误耗费很长时间,同时反复的导入也非常耗费时间(数据库每个有200M左右,一共有7个数据库),我想询问一下mysql有没有自带的工具或命令可以直接对数据库中存储的数据进行编码转换?如果没有,使用什么方法比较简单,可靠?

还附带想问一个mysql 5.0 的问题。开始使用mysql5.0.18和mysql5.0.22,发现这个版本语法非常严格,尤其对一些非空值和自动增量的语法和检验,导致从前的程序可以正常读出内容但是却无法进行插入和修改操作,必须对所有原有程序进行重新编写。最近使用5.0.26版本时突然发现从前的数据不经修改可以直接导入(一些非空字段插入空值没有报错),数据的插入和修改操作还没来得及做实验。是不是这个版本又重新添加了对4.X的兼容特性?
...全文
497 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rizhinan 2007-01-11
  • 打赏
  • 举报
回复
做个记号!
hhhui2008 2007-01-05
  • 打赏
  • 举报
回复
收藏
csdnpro 2006-10-19
  • 打赏
  • 举报
回复
谢谢。我试一下
47522341 2006-10-16
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/5013/5013925.xml?temp=.4699518

这几天在升级论坛,数据库乱码的问题最常见,尤其是从MYSQL 4.0升到MYSQL 5。
我在升级的时候也碰到这个问题,经过无数次的测试,终于解决了这个问题。

使用的是GBK,在备份原数据库时,使用:

mysqldump -uroot -p --default-character-set=gbk --skip-opt test >test.sql

在phpmyadmin中建立新的数据库,在phpmyadmin中设置:

language: chinese simplified (zh-utf-8)
MYSQL字符集: UTF-8 Unicode (utf8)
MYSQL连接校对: utf8_general_ci

在导入SQL数据库时,使用如下命令:
mysql -uroot -p --default-character-set=utf8 -f test<test.sql

然后你就能在phpmyadmin中见到阔别已久的中文了,而不再是讨厌的???????? 了。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧