• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL4到5的升级_MySQL

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

周末帮一个客户做了一次升级,是从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>F本文来源gaodai$ma#com搞$$代**码网$ROM 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 来看看数据表是否有问题,然后再决定下一步该怎么做


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL4到5的升级_MySQL
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址