Chinaunix首页 | 论坛 | 博客
  • 博客访问: 218412
  • 博文数量: 68
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 695
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-19 21:17
文章分类

全部博文(68)

文章存档

2009年(16)

2008年(12)

2007年(27)

2006年(13)

我的朋友

分类: Mysql/postgreSQL

2006-11-26 21:12:42

上次更换服务器系统从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手工查找(?,),替换成(',),然后就通过了。
阅读(2171) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~