如果担心升级失败,就先把旧版本的MySQL改个名字备份起来,以备所需。
同时,升级完之后可能还需要重新编译跟MySQL相关的程序,因为新版本的头文件和库文件可能有改变了。
如果升级后发生问题了,请先检查是否使用了旧的my.cnf配置文件,可以通过执行命令 "mysqld --print-defaults" 来打印出各种配置信息来确认。
升级的时候最好也升级类似Perl的 DBD::mysql 模块,同样,对PHP和Python而言也是一样。
2、从 MySQL 5.0 升级到 MySQL 5.1
从 5.0 升级到 5.1 的时候,必须要升级授权表。否则,可能某些存储过程无法运行。详情请看附录 "mysql_update MySQL升级时检查数据表"。
以下是从 5.0 升级到 5.1 需要注意的事项:
检查所有的变化,尤其注意那些标志为 "不兼容的变化" 的部分。详情请看附录 "mysql_update MySQL升级时检查数据表"
可能某些发布版本会改变授权表的机制
查看所有重大的变化,详情请看MySQL手册的 "D.1.1.?Changes in release 5.1.10 (Not yet released)" 章节
以下是升级到MySQL 5.1之后会发生的一些变化:
服务器部分:
不兼容的变化:MySQL 5.1 实现了支持无需重启服务器就能在运行时加载或卸载API插件。这个特性需要用到mysql.plugin表,可以运行 "mysql_upgrade" 命令来创建该表
插件安装在系统变量 plugin_dir 所指的目录下。这个变量也控制着用户自定义函数(UDFs)所在目录,这相对以前的版本有所改变。在MySQL 5.1中,所有的UDFs库必须都安装到 plugin_dir 目录下,从旧版本升级的时候,必须把那些库文件都移动到这个目录下
不兼容的变化:系统变量 table_cache 改名为 table_open_cache
不兼容的变化:在MySQL 5.1.6 中 FULLTEXT 的索引结构发生变化了。当升级到 5.1.6 甚至更高之后,需要对每个包含 FULLTEXT 字段的数据表执行 "REPAIR TABLE" 语句
在 MySQL 5.1.6 以前,MySQL把普通的查询日志和慢查询都写到文件中。从5.1.6以后,这些日志可以灵活地选择是是写到日志文件中(跟以前一样)或者写到 mysql 数据库的 general_log 和 slow_log 表中。如果启用日志记录,这2种方式都可以使用。选项 --log-output 用来控制这2种日志的记录方式
从5.1.6开始,特殊字符集的数据库和表的标识符在创建相应目录和文件时都会用对应的字符集编码了
SQL分:
本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/13491.htm
升级要备份好重要的文件,如参数文件,重建my.cnf文件。1. 停数据库,备份数据(备份物理文件)
2. 将新版本mysql的数据目录指向到旧目录(datadir)
3. 启动mysqld时使用skip grant tables 参数避开系统检查,
# 例如
/usr/local/mysql/bin/mysqld --datadir=/var/data/ --user=mysql --skip-grant-tables &
4. 执行mysql_upgrade,这时应该就会顺利进行下来了
或者只升级授权表,mysql_fix_privilege_tables(推荐) 或 mysql_fix_privilege_tables.sql 脚本执行
5. 停止mysqld
6. 按照原来的my.cnf运行正常服务(这一步失败很可能由于参数不兼容引起,比如bdb相关的所有参数5.1开始都不再支持,总之这一步很容易处理)
7. 检查表有没有问题,比如执行mysqlcheck --all-databases 等等
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)