因为 y&(*(%*t*(y(y ... 所以BLOG要移窝了,很感谢 XUCHAO "MM" 在这个时候拔刀相助.真是相当滴感动啊!!!
可就当满心欢喜挪的时候,突然想起以前MYSQL乱码问题来了,以前太懒,发现可以用就不管了,全不管PHPMYADMIN
里全是乱码.如今麻烦来了,昨天搞到2点,还是一无所有.幸好今天去了趟新公司,得到不知道喜还是忧的答复,也算是
一种解脱了.把 GOOGLE 搜烂了,结果发现问题当然还是出在 字符集 上.还是出在 latin1_swedish_ci 这个鸟老
字符集上.就当要放弃的时候,GOOGLE 了一下,居然找到惊喜.测试一遍OK.转换过去OK.太帅了.MYSQL 乱码问题到这
里算是终结了。感谢湖南卫视,感谢快乐男生,感谢我型我SHOW!!!(别误会,这几个感谢只是为了提高点流量...)
下面是正文...被乱码烦恼的人们.请点击.PS: 版权所有:huangliming
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级、降级,特别是升级MySQL的版本,为了不让程序继续沿用Latin1字符集之后对以后Discuz!版本升级的影响和安装SupeSite,这就需要我们进行字符集的转换!
本人转换过好多数据了,也用过了好多的办法,个人感觉最好用的就是使用MySQL命令导出导入中将字符集转换过去!
现在我将用图文并茂的方式向大家展示一下如何将MySQL字符集进行转换,由于字符集比较多,现在主要举GBK和Latin1这两种字符集之间的转换!
首先我将讲解一下如何将MySQL从GBK转换为Latin1的(如果是UTF8或者BIG5转换即将GBK换成相应的字符集即可)!这种问题常发生在MySQL从MySQL4.1及其以上版本转换为MySQL4.1以下的版本的过程中!有的人图个方便,特别是有主机权限的,直接将MySQL的data目录下的文件拷贝过去了,这样造成的问题就是乱码问题!当然我所说的这些都要求你必须拥有主机权限,虚拟主机用户可以在本地搭建好论坛,下载数据到你的本地,然后把数据导入到你本地的数据库,然后进行字符集的转换!
现在的步骤就是将MySQL的数据导出了,在mysql的命令提示符下(linux系统为mysql的命令目录下),输入下面导出的命令:
mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
如图1(windows下)和图2(linux下)所示
这样就轻松的将数据从MySQL数据库中导出了,此时导出的文件在与mysql命令同级的目录下,即bin目录下,而且已经将MySQL字符集导出为Latin1的了!现在要做的就是将数据导入MySQL4.0中去!
同样在4.0版本的mysql命令提示符下(linux系统为mysql的命令目录下),输入下面导入命令:
mysql -uroot -p --default-character-set=latin1 -f discuz 如图3(window下)和图4(linux下)所示
这样就将字符集从GBK转为Latin1同时将MySQL从4.1以上版本的转为MySQL4.0的了!
现在讲解一下如何从Latin1字符集转换为GBK的!
由于只有MySQL4.1以上的版本才有字符集的概念,所以如果你要将MySQL4.0的字符集从Latin1转换为GBK字符集的话,必须导入到MySQL4.1以上的版本中,然后再导出!这里面就多了一个导出为Latin1的步骤!
同样在MySQL4.0的命令提示符下,输入下面导出的命令:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=latin1 --skip-opt discuz>discuz.sql
然后导入到MySQL4.1中,输入下面导入的命令:
mysql -uroot -p --default-character-set=latin1 -f discuz 然后在MySQL4.1下转换字符集,分别输入下面导出和导入的命令:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt discuz>discuz.sql
mysql -uroot -p --default-character-set=gbk -f newdiscuz 如果不出问题的话,那么转换就完毕了!其实整个过程还是比较简单的,只是过程看起来比较麻烦些,但是过程却是很简单明了的!
下面举出一个在导入过程中极易容易出现的问题!
在导入的时候容易出现unknown command '/'这样的错误,其实这是由于MySQL在导出的时候,它有时候给一些繁体字后面自动加上了个反斜杠造成的!解决此问题的办法就是打开备份的sql(这里为discuz.sql),提示错误的时候会提示具体哪行出现了错误,找到那行,把反斜杠去掉就行了!其实你可以用Ultraedit这些文本处理的工具,批量的去处理这些反斜杠!凭个人经验,有很多用户名取的比较怪,这样就容易出现反斜杠,这样只要纠正那些用户名就行了!
以上是个人在转换数据过程中的一些经验之谈,很多地方还有待大家完善!
号称最简单方式... 未经过测试.如有人测试后,请告知.谢谢...
MySQL从4.0升级到4.1/5.0的乱码问题(最简单最有效的方式).
MySQL从4.0升级到4.1/5.0的乱码问题.
1. 安装完5.0后,在my.cnf里增加这些:
max_connections=10000
character-set-server = utf8
collation-server = utf8_general_ci
default-character-set= utf8
default-collation = utf8_general_ci
log=/var/log/mysqld/log.log
log-update=/var/log/mysqld/update.log
#注意LOG打开是为开发用的.
2. Copy 你的数据文件到 新的数据库目录就OK. 可能需要保证你原数据是UTF8的,不过一般只要没有特别设置都是的.
可就当满心欢喜挪的时候,突然想起以前MYSQL乱码问题来了,以前太懒,发现可以用就不管了,全不管PHPMYADMIN
里全是乱码.如今麻烦来了,昨天搞到2点,还是一无所有.幸好今天去了趟新公司,得到不知道喜还是忧的答复,也算是
一种解脱了.把 GOOGLE 搜烂了,结果发现问题当然还是出在 字符集 上.还是出在 latin1_swedish_ci 这个鸟老
字符集上.就当要放弃的时候,GOOGLE 了一下,居然找到惊喜.测试一遍OK.转换过去OK.太帅了.MYSQL 乱码问题到这
里算是终结了。感谢湖南卫视,感谢快乐男生,感谢我型我SHOW!!!(别误会,这几个感谢只是为了提高点流量...)
下面是正文...被乱码烦恼的人们.请点击.PS: 版权所有:huangliming
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级、降级,特别是升级MySQL的版本,为了不让程序继续沿用Latin1字符集之后对以后Discuz!版本升级的影响和安装SupeSite,这就需要我们进行字符集的转换!
本人转换过好多数据了,也用过了好多的办法,个人感觉最好用的就是使用MySQL命令导出导入中将字符集转换过去!
现在我将用图文并茂的方式向大家展示一下如何将MySQL字符集进行转换,由于字符集比较多,现在主要举GBK和Latin1这两种字符集之间的转换!
首先我将讲解一下如何将MySQL从GBK转换为Latin1的(如果是UTF8或者BIG5转换即将GBK换成相应的字符集即可)!这种问题常发生在MySQL从MySQL4.1及其以上版本转换为MySQL4.1以下的版本的过程中!有的人图个方便,特别是有主机权限的,直接将MySQL的data目录下的文件拷贝过去了,这样造成的问题就是乱码问题!当然我所说的这些都要求你必须拥有主机权限,虚拟主机用户可以在本地搭建好论坛,下载数据到你的本地,然后把数据导入到你本地的数据库,然后进行字符集的转换!
现在的步骤就是将MySQL的数据导出了,在mysql的命令提示符下(linux系统为mysql的命令目录下),输入下面导出的命令:
mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
如图1(windows下)和图2(linux下)所示
这样就轻松的将数据从MySQL数据库中导出了,此时导出的文件在与mysql命令同级的目录下,即bin目录下,而且已经将MySQL字符集导出为Latin1的了!现在要做的就是将数据导入MySQL4.0中去!
同样在4.0版本的mysql命令提示符下(linux系统为mysql的命令目录下),输入下面导入命令:
mysql -uroot -p --default-character-set=latin1 -f discuz
这样就将字符集从GBK转为Latin1同时将MySQL从4.1以上版本的转为MySQL4.0的了!
现在讲解一下如何从Latin1字符集转换为GBK的!
由于只有MySQL4.1以上的版本才有字符集的概念,所以如果你要将MySQL4.0的字符集从Latin1转换为GBK字符集的话,必须导入到MySQL4.1以上的版本中,然后再导出!这里面就多了一个导出为Latin1的步骤!
同样在MySQL4.0的命令提示符下,输入下面导出的命令:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=latin1 --skip-opt discuz>discuz.sql
然后导入到MySQL4.1中,输入下面导入的命令:
mysql -uroot -p --default-character-set=latin1 -f discuz
mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt discuz>discuz.sql
mysql -uroot -p --default-character-set=gbk -f newdiscuz
下面举出一个在导入过程中极易容易出现的问题!
在导入的时候容易出现unknown command '/'这样的错误,其实这是由于MySQL在导出的时候,它有时候给一些繁体字后面自动加上了个反斜杠造成的!解决此问题的办法就是打开备份的sql(这里为discuz.sql),提示错误的时候会提示具体哪行出现了错误,找到那行,把反斜杠去掉就行了!其实你可以用Ultraedit这些文本处理的工具,批量的去处理这些反斜杠!凭个人经验,有很多用户名取的比较怪,这样就容易出现反斜杠,这样只要纠正那些用户名就行了!
以上是个人在转换数据过程中的一些经验之谈,很多地方还有待大家完善!
号称最简单方式... 未经过测试.如有人测试后,请告知.谢谢...
MySQL从4.0升级到4.1/5.0的乱码问题(最简单最有效的方式).
MySQL从4.0升级到4.1/5.0的乱码问题.
1. 安装完5.0后,在my.cnf里增加这些:
max_connections=10000
character-set-server = utf8
collation-server = utf8_general_ci
default-character-set= utf8
default-collation = utf8_general_ci
log=/var/log/mysqld/log.log
log-update=/var/log/mysqld/update.log
#注意LOG打开是为开发用的.
2. Copy 你的数据文件到 新的数据库目录就OK. 可能需要保证你原数据是UTF8的,不过一般只要没有特别设置都是的.
beatrice Says:
2007/05/15 16:58
Fais ce que tu trouves bon!
使使和豚豚 Says:
2007/05/16 15:37
上句话的意思是"做你认为对的事情"哈哈~~~
法语? 呵呵.法语不错嘛.
leftleg 回复于 2007/05/16 15:55
linna Says:
2007/05/23 11:12
要那么高的点击率干嘛?
爱 Says:
2007/11/04 10:51
爱
分页: 1/1
1
1
yum 中国镜象
新浪与中国电信联手 新浪互联星空播客全新亮相













