最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL4到5的快速升级

来源:动视网 责编:小采 时间:2020-11-09 15:40:09
文档

MySQL4到5的快速升级

MySQL4到5的快速升级:作/译者:叶金荣(Email: ),来源:http://imysql.cn 周末帮一个客户做了一次升级,是从4.0.22直接升级到5.0.37,在windows平台下。由于是在windows平台下,而且涉及到乱码,担心会 比较麻烦,我就先用一小部分数据进行测试。结果表明,如果原来采用的是la
推荐度:
导读MySQL4到5的快速升级:作/译者:叶金荣(Email: ),来源:http://imysql.cn 周末帮一个客户做了一次升级,是从4.0.22直接升级到5.0.37,在windows平台下。由于是在windows平台下,而且涉及到乱码,担心会 比较麻烦,我就先用一小部分数据进行测试。结果表明,如果原来采用的是la


作/译者:叶金荣(Email: ),来源:http://imysql.cn 周末帮一个客户做了一次升级,是从4.0.22直接升级到5.0.37,在windows平台下。由于是在windows平台下,而且涉及到乱码,担心会 比较麻烦,我就先用一小部分数据进行测试。结果表明,如果原来采用的是lat

作/译者:叶金荣(Email: ),来源:http://imysql.cn

周末帮一个客户做了一次升级,是从4.0.22直接升级到5.0.37,在windows平台下。由于是在windows平台下,而且涉及到乱码,担心会 比较麻烦,我就先用一小部分数据进行测试。结果表明,如果原来采用的是latin1字符集,并且在MySQL 5中也使用latin1作为默认字符集的话,在显示中文方面是不会有问题的。当然了,这只是针对MyISAM类型的表,如果是InnoDB我想还是需要通 过 "mysqldump" 来实现的。
由于MySQL 4.0和5.0的MyISAM存储引擎在各方面都发生了变化,详情可以看"MySQL 4.0 升级到5.0"。这些变化会导致一些异常的情况出现,比如一个 VARCHAR/CHAR 类型的字段查询上的异常,看下面几个查询:

mysql>SELECT name,'yejr',length(name),length('yejr') 
mysql>FROM user WHERE name ='yejr';
Empty set (0.00 sec)
mysql>
mysql>
mysql>SELECT name,'yejr',length(name),length('yejr')
mysql>FROM user WHERE uid=1;
+---------+------+--------------+----------------+
| name | yejr | length(name) | length('yejr') |
+---------+------+--------------+----------------+
| yejr | yejr | 4 | 4 |
+---------+------+--------------+----------------+
mysql>
mysql>SELECT name,'yejr',length(name),length('yejr')
mysql>FROM user WHERE uid=1 AND name='yejr';
Empty set (0.00 sec)

明明 'yejr' 和 name 内容相同,而且长度也一样,却无法得到正确的结果呢?先来看看数据表的情况吧:

mysql> CHECK TABLE user; +---------------------+-------+----------+---------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+-------+----------+---------------------------------------------------------+
| yejr.user | check | error | Checksum for key: 2 doesn't
match checksum for records |
| yejr.user | check | error | Corrupt |
+--------+-------+----------+---------------------------------------------------------+
2 rows in set (0.04 sec)

原来是把旧版本的文件直接拷贝到新版本的环境下后,出现了checksum失败,那就好办了,REPAIR 一下吧:

mysql>REPAIR TABLE user;
+--------+--------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+--------+--------+----------+----------+
| yejr.user | repair | status | OK |
+--------+--------+----------+----------+

然后再查询一下,就没有任何问题了。
最后,我们来看看原因是什么,查了一下手册,发现有这么一句话:

MyISAM 现在使用更好的校验和算法了

这是在从MySQL 4.0 到 4.1 所产生的变化,在 "升级 MySQL" 中就能看到全部的变化列表。

总结一下,通常情况下,直接拷贝MyISAM数据文件即可实现低成本升级,但是如果碰到了字符集以及版本变化比较大的时候,最好看看本文以及上述提到的另外两片文章。还有就是,如果出现一些异常情况了,就先执行 CHECK TABLE 来看看数据表是否有问题,然后再决定下一步该怎么做。


"MySQL 4.0 升级到5.0"
"升级 MySQL"

文档

MySQL4到5的快速升级

MySQL4到5的快速升级:作/译者:叶金荣(Email: ),来源:http://imysql.cn 周末帮一个客户做了一次升级,是从4.0.22直接升级到5.0.37,在windows平台下。由于是在windows平台下,而且涉及到乱码,担心会 比较麻烦,我就先用一小部分数据进行测试。结果表明,如果原来采用的是la
推荐度:
标签: 快速 升级 来源
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top