侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

MySQL 4.0 升级到mysql 5.0的方法

数据库  /  管理员 发布于 6年前   150

一、从 4.0 到 4.1 的主要变化

如果在4.1.0到4.1.3版本的MySQL中创建了包含 TIMESTAMP 字段的 InnoDB表。则在升级到4.1.4及更高时需要重建表,因为存储格式发生变化了
字符串根据标准SQL来比较:比较之前不删除末尾的空格,以前用末尾空格扩展了比较短的字符串。现在的结果是'a' > 'a\t',以前则不这样。可以用 mysqlcheck 来检查一下数据表
TIMESTAMP 返回 'YYYY-MM-DD HH:MM:SS' 格式的字符串。在MySQL
4.0中,可以增加选项 --new 来获得MySQL 4.1中这方面的特性
在MySQL4.1.1前,语句解析器不是那么严格,它在处理字符串转时间转换时会忽略第一个数字前的其他字符。在4.1.1之后,就比较严格了
返回结果是 DATE, DATETIME, 或 TIME 类型的函数的结果会被转换成时间型

二、再看从 4.1 到 5.0 的主要变化

InnoDB 和 MyISAM 表中空格结尾的 TEXT 字段索引顺序改变了。因此需要运行
"CHECK TABLE" 语句修复数据表,如果出现错误,就运行 "OPTIMIZE TABLE" 或 "REPAIR
TABLE" 语句修复,甚至重新转储(用mysqldump)
MySQL 5.0.15开始,如何处理 BINARY 字段中填充的值已经改变了。填充的值现在是
0x00 而非空格了,并且在取值的时候不会去除末尾的空格
从MySQL 5.0.3开始,DECIMAL 的实现方式已经改变了,5.0对 DECIMAL
的格式限制严格多了
在MySQL 5.0.3到5.0.5之间版本的 MyISAM 和 InnoDB 表中创建的 DECIMAL
字段升级到5.0.6之后会发生崩溃
在以前,等待超时的锁会导致 InnoDB
回滚当前全部事务,从5.0.13开始,就只回滚最近的SQL语句了
在4.1.13/5.0.8以前,DATETIME 的加0后就转换成 YYYYMMDDHHMMSS 格式,现在变成
YYYYMMDDHHMMSS.000000 格式了
从5.0.3开始,DECIMAL 用更有效的格式来存储
5.0.3开始,在计算 DECIMAL 值和舍入精确值的时候采用精确数学
4.1中,FLOAT 或 DOUBLE 之间的比较碰巧没问题,但在5.0中可能就不行了
从5.0.3开始,VARCHAR 和 VARBINARY 字段中末尾的空格不再删除
增加了一个新的启动选项 innodb_table_locks,它导致 LOCK TABLE 时也可以请求
InnoDB 表锁。这个选项默认打开,不过可能在 AUTOCOMMIT=1 和 LOCK TABLES
应用中会导致死锁
看来,我只需主要关注 时间(TIMESTAMP, DATETIME< DATE, TIME) 和
数值型(FLOAD, DOUBLE, DECIMAL) 这两种类型的变化;另外,我升级过程中暂时还不需要涉及到字符集问题,因此相对轻松一些。

升级步骤如下:

执行

复制代码 代码如下:
FLUSH TABLES WITH READ LOCK;/[code]
直接拷贝 MyISAM 表文件

用 mysqldump 导出 Innodb 类型的表
整个过程都很顺利,新系统启动之后,发现如下2个问题:

新增了关键字 INOUT,因此需要检查表结构中还有其他什么字段使用关键字了
DATE_FORMAT 函数要求严谨多了,
[code]DATE_FORMAT('2006/11/24 09:14:00', '%Y-%m-%d %T')

和

程序代码
DATE_FORMAT('2006/11/2409:14:00', '%Y-%m-%d %T')

的结果完全不一样,在 4.0 中,能兼容这两种格式,而在 5.0 中,只能正确的使用前者了,后者则会有问题。这也应该是上面提到的时间类型发生的变化所致。

到此为止,升级基本结束,大致检查了 DECIMAL 类型也没问题,剩下的就是检查其他的了。


  • 上一条:
    mssql转换mysql的方法小结
    下一条:
    mysql中将null值转换为0的语句
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客