MySQL 升级方法指南大全第3/5页

更新时间:2008年01月26日 18:58:58   作者:

通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本。例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0。

不兼容的变化:在MySQL 5.1.8开始,TYPE = engine_name 还仍然是 ENGINE = engine_name 的同义语法,但有警告。从5.2开始,将完全删除这种语法,并报告错误。

不兼容的变化:在MySQL 5.0.10中,触发器的命名空间已经改变了。在以前,触发器的名字必须和每个数据表都不一样。现在,只需要在数据库内唯一就行了。隐含的变化就是,DROP TRIGGER 语法使用模式名而非数据表名(模式名是可选参数,如果忽略了,就使用当前的模式)

当从5.0升级到5.0.10及更高时,则必须删除触发器后重新创建它们,否则升级后就无法删除触发器了。建议如下:

导出触发器:

SELECT CONCAT('CREATE TRIGGER ', t.TRIGGER_SCHEMA, '.', t.TRIGGER_NAME,

' ', t.ACTION_TIMING, ' ', t.EVENT_MANIPULATION, ' ON ',

t.EVENT_OBJECT_SCHEMA, '.', t.EVENT_OBJECT_TABLE,

' FOR EACH ROW ', t.ACTION_STATEMENT, '//' )

INTO OUTFILE '/tmp/triggers.sql'

FROM INFORMATION_SCHEMA.TRIGGERS AS t;

将触发器导出到文件 "/tmp/triggers.sql" 中去。

停止服务器,然后删除数据库目录下的所有 "TRG" 文件:

shell>rm -f */*.TRG

启动服务器,倒入触发器:

mysql> delimiter // ;

mysql> source /tmp/triggers.sql //

不兼容的变化:MySQL 5.1.6引进了触发器权限机制。以前,创建触发器需要有 SUPER 权限,现在,这个操作只需要有 TRIGGER 权限。这改善了权限安全状况

一些MySQL 5.1中作为保留关键字在MySQL 5.0中并没有作为保留关键字

新引入了 "INSTALL PLUGIN" 和 "UNINSTALL PLUGIN" 语句用于操作API插件。同样,创建 FULLTEXT 索引时,可以用 "WITH PARSER" 子句关联解析器插件

3、从 MySQL 4.1 升级到 MySQL 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之后会发生崩溃

不兼容的变化:从5.0.3开始,除非和主函数之间有辅助的符号链接,否则服务器将不再默认地加载用户自定义函数(UDFs),也可以通过 --allow-suspicious-udfs 选项来启用

不兼容的变化:5.0中禁用了更新日志(update log) ,不过可以用二进制日志(binary log)来代替它

不兼容的变化:5.0中不再支持 ISAM 类型存储引擎(作者:可以通过重新编译源代码支持,不过非常不建议这么做)

不兼容的变化:5.0中不再支持 MyISAM 的 RAID 选项,可以用 mysqldump 导出旧表然后重新导回去实现升级

在5.0.6中,记录存储过程和触发器的二进制日志发生了一些变化,详见手册的 "17.4 Binary Logging of Stored Routines and Triggers"

SQL部分:

不兼容的变化:从5.0.12开始,自然连接和使用 USING 的连接,包括外部连接的衍生形式,都按照SQL:2003标准来处理了;这个变化导致减少了自然连接和使用 USING 的连接产生的结果字段数,并且还将按照更合理的顺序显示这些字段,逗号比较符的优先顺序和 JOIN, LEFT JOIN 中的一样了

不兼容的变化:在以前,等待超时的锁会导致 InnoDB 回滚当前全部事务,从5.0.13开始,就只回滚最近的SQL语句了

不兼容的变化:触发器的变化,跟前面讲到的一样

不兼容的变化:从5.0.15开始,CHAR() 函数返回二进制字符串,而不是按照连接字符集格式的字符串。子句 USING charset_name 可以自定义返回结果的字符集

不兼容的变化:在5.0.13以前,NOW() 和 SYSDATE() 返回的结果一样。但从5.0.13开始,SYSDATE() 返回的是语句执行点的时间,这就可能和 NOW() 返回的结果不一样了,不过可以用 --sysdate-is-now 选项让 SYSDATE() 作为 NOW() 的同名函数

不兼容的变化:在5.0.13以前,GREATEST(x,NULL) 和 LEAST(x,NULL) 如果 x 不是 NULL 值,则返回 x 。从5.0.13开始,只要任何参数是 NULL ,就返回 NULL,跟Oracle一样

不兼容的变化:在4.1.13/5.0.8以前,DATETIME 的加0后就转换成 YYYYMMDDHHMMSS 格式,现在变成 YYYYMMDDHHMMSS.000000 格式了

不兼容的变化:在4.1.12/5.0.6中,语句 LOAD DATA INFILE 和 SELECT ... INTO OUTFILE 中,当 FIELDS TERMINATED BY 和 FIELDS ENCLOSED BY 的值都是空的时候,结果就被改变了。以前,字段都按照它显示的宽度来读写的。现在变成按照足够保存字段值的宽度来读写它。然而,对MySQL 4.0.12/5.0.6来说,那些在它们之前导出来的文件可能无法正确用 LOAD DATA INFILE 语句导入

一些MySQL 5.0中作为保留关键字在MySQL 4.1中并没有作为保留关键字

从5.0.3开始,DECIMAL 用更有效的格式来存储

5.0.3开始,在计算 DECIMAL 值和舍入精确值的时候采用精确数学

4.1中,FLOAT 或 DOUBLE 之间的比较碰巧没问题,但在5.0中可能就不行了

从5.0.3开始,VARCHAR 和 VARBINARY 字段中末尾的空格不再删除

从5.0.3开始,BIT 是一个独立的数据类型了,不再是 TINYINT(1) 的同名词了

MySQL 5.0.2增加了一些SQL模式以使对排除包含非法或者缺失值得记录有着更严格的控制

从5.0.2开始,关键字 SCHEMA 和 SCHEMAS 被认为分别是 DATABASE 和 DATABASES 的同名词

5.0中用户变量对大小写不敏感,而4.1中则不然

增加了一个新的启动选项 innodb_table_locks,它导致 LOCK TABLE 时也可以请求 InnoDB 表锁。这个选项默认打开,不过可能在 AUTOCOMMIT=1 和 LOCK TABLES 应用中会导致死锁

C API部分:

相关文章

这篇文章主要介绍了Slave memory leak and trigger oom-killer,需要的朋友可以参考下2016-07-07

这篇文章主要介绍了MySQL下PID文件丢失的相关错误的解决方法,具体的提示可能会是"mysql PID file not found and Can’t connect to MySQL through socket mysql.sock",需要的朋友可以参考下2015-07-07

MySQL server has gone away 问题解决方法,需要的朋友可以参考下。2010-06-06

MySQL 配置文件my.cnf 例子最详细翻译,需要的朋友可以看看。2009-05-05

mysql 编码设置命令,需要的朋友可以参考下。2009-10-10

在事务中,每个正确的原子操作都会被顺序执行,直到遇到错误的原子操作,此时事务会将之前的操作进行回滚。回滚的意思是如果之前是插入操作,那么会执行删 除插入的记录,如果之前是update操作,也会执行update操作将之前的记录还原2014-05-05

这篇文章主要给大家介绍了关于MySQL SHOW PROCESSLIST协助故障诊断的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧2019-02-02

这篇文章主要介绍了最新mysql-5.7.21安装和配置方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2018-09-09

本文给大家分享的是如何使用php实现读取mysql一个库下面的所有的表table的代码,有需要的小伙伴可以参考下2016-12-12

这篇文章主要介绍了MySQL 索引的优劣以及创建索引的准则,帮助大家更好的理解和使用MySQL 索引,感兴趣的朋友可以了解下2020-09-09

最新评论

mysql 导入.trg_MySQL 升级方法指南大全第3/5页相关推荐

  1. mysql导入sql文件方法

    mysql导入sql文件方法 1.利用navicat客户端导入 2.cmd导入sql文件 1.利用navicat客户端导入 右键点击表,选择运行SQL文件. 选择emp.sql文件,编码选择UTF8, ...

  2. mysql导入数据库的方法

    方法一: 1 首先我们使用MySQL提供的命令行界面来导入数据库,确保自己的电脑中安装了MySQL数据库,我们可以通过命令行来确认是否安装了MySQL数据库,当然,第一步是打开Mysql的数据库服务, ...

  3. mysql导入表数据方法_mysql数据导入导出方法总结

    MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式:(linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL安 ...

  4. MySQL同步复制搭建方法指南详细步骤

    http://www.iteye.com/wiki/blog/335061 转载于:https://www.cnblogs.com/longshiyVip/p/4776970.html

  5. linux中mysql导入文件,linux下mysql导入sql文件命令

    Linux下我们提供导入sql文件可以得到数据.下面由学习啦小编为大家整理了linux下mysql导入sql文件命令的相关知识,希望对大家有帮助! linux的mysql导入sql文件命令详解 lin ...

  6. 将IEEE参考文献导入Endnote的方法

    将IEEE参考文献导入Endnote的方法 在IEEE对应论文的页面上,选择[Cite This]: 然后选择[RIS]格式,点击[Download],即可下载得到文献所对应的RIS文件. 直接点开下 ...

  7. mysql 导入 mssql_MySQL(csv,text)导入mssql使用方法

    MySQL(csv,text)导入mssql是非常的简单了但是在导入过程中会碰到text字段问题了,下面我们就来看一篇关于MySQL(csv,text)导入mssql使用方法吧,具体的操作细节如下所示 ...

  8. python亿级mysql数据库导出_Python之csv文件从MySQL数据库导入导出的方法

    Python之csv文件从MySQL数据库导入导出的方法 发布时间:2020-10-26 07:39:02 来源:脚本之家 阅读:53 作者:张行之 Python从MySQL数据库中导出csv文件处理 ...

  9. phpcms数据库 mysql 清空与导入 - phpMyAdmin操作 - 方法篇

    文章目录 phpcms数据库mysql 如何删除和导入 图片教程: 文字教程 · 操作方法: phpcms数据库mysql 如何删除和导入 phpMyAdmin操作 - 方法篇 图片教程: 文字教程 ...

最新文章

  1. SAP中负数的表示增强 负号从数字后更改到数字前面
  2. Java教程之RabbitMQ介绍
  3. 台式计算机内存是什么意思,电脑提示计算机内存不足是什么意思
  4. flutter FadeTransition实现透明度渐变动画
  5. 如何实现响应式布局?
  6. Linux开机报write same failed manually zeroing错误
  7. UE4之wgs84坐标系
  8. kill、killall 、pkill 发送信号命令
  9. 小甲鱼【C语言】《带你学C带你飞》笔记
  10. 使用selenium登录QQ空间
  11. 【MM32F5270开发板试用】+RFID门禁
  12. 成功入园啦~ BoomShakalaka
  13. (八)《跟我一起写Makefile》之使用函数
  14. 通达信VCP形态选股公式,憋了好几天才写出来
  15. 数学建模-火箭发射问题
  16. ADO.NET学习笔记
  17. 排序算法之 二分法排序
  18. linux操作系统版本 3100,IBM SYSTEM x3100 都能安装哪些操作系统?
  19. 笔记本WiFi无法连接、网卡驱动无法安装
  20. spacy中的pipelines

热门文章

  1. 图解禁用WannaCry病毒利用的445端口
  2. WITH AS 同时定义多个CTE实现年假查询
  3. iOS网络——身份认证
  4. ThinkPad E470 重装系统 win10 win7
  5. 【竞赛】视频质量评价竞赛经验记录-2(调研和尝试)
  6. 百度UE富文本编辑器问题(包问题)JAVA MEAVN
  7. JavaScript简明教程三
  8. 如何快速恢复iPhone13已删除的备忘录
  9. 【Linux】切换用户身份(su)
  10. 飞桨领航团AI达人创造营第一课