失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > mysql utf8 latin1_将Mysql字符集从latin1转换到utf8

mysql utf8 latin1_将Mysql字符集从latin1转换到utf8

时间:2020-01-02 20:23:11

相关推荐

mysql utf8 latin1_将Mysql字符集从latin1转换到utf8

上次更换服务器系统从rh7.3到ubuntu,将Mysql3.23野蛮升级到5.1,因为只要部分数据库,不想去打开那个大SQL文件去编辑。但将想要的数据文件copy到新目录下,发现竟然也可以用,也就不去管它了。

但在phpMyadmin里竟然都是乱码了,这可不行,不少数据因为我懒得开发后台,都是用phpMyAdmin来管理数据的。

上网找了下,才知道有个字符集的什么东东,按照网上常讲的三步法,先latin1导出,再用iconv转换,再用utf8导入,我怎么也不行。到底是因为ubuntu的原因,还是怎么回事,还没搞明。不知道哪位前辈有经验,给点提示。

最后采取了一个办法,先将一个小数据库先改升级成utf8的:

mysqldump --default-character-set=latin1 woyi|sed 's/latin1/utf8/'>woyi.sql

再将该sql内容copy到phpMyAdmin的SQL执行窗口中执行。谢天谢地,总算在phpMyAdmin中看到不乱码了。

朋友的网站要加一个论坛,可论坛的PHP代码都用GBK或UTF8字符集,原来一直搞不定的数据库的LATIN1字符集升级到UTF8问题,今天只好再试试。不想今天手气竞然不错,这个问题还真解决了。

1.先从sm18900库中将某表导出:

mysqldump --default-character-set=latin1 sm18900 product_kind>product_kind.0

2.使用UltraEdit32修改product_kind.0文件

在文件开头的注释之后,SQL语句之前,加入如下两句

我将这两句放在文件的开头,竞然不行?

请看导出的sql文件的第10行,这是一句视版本的执行命令:

/*!40101 SET NAMES latin1 */;

set names utf8;

use pk0598;

将defaultcharset=latin1改成utf8的

用菜单里的“转换”,将文件从ASC转成UTF8

再将文件重新上传到服务器,并另存文件为product_kind.1。

我可是用二进制方式上传的,不是ASC方式

3.导入到新库中

mysql大部分的表,我都这样操作成功了。但是部分表在导入时,语法出错或是提示什么段错误,经检查,发现,

在INSERT语句中有部分字段值没有后引号,只是一个?,就开始下一字段了。也不知,是原表的原因,还是哪来的问题,反正,我只好用UltraEdit手工查找(?,),替换成(',),然后就通过了。

阅读(1845) | 评论(0) | 转发(0) |

如果觉得《mysql utf8 latin1_将Mysql字符集从latin1转换到utf8》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。