2. 安装 Visual C++ 2012/2013(或更多版本)。
3. 停应用,停止 5.6 实例(可以通过停服务来 *** 作,停止服务前建议记录一下 GTID 或 binlog file 和 position 位置),删除服务。
4. 备份一份 5.6 实例的 datadir,包括 binlog(整个目录 copy 到别的目录存放)。
5. 拷贝 5.6 实例的 datadir 和 my.ini 到 5.7 实例 basedir 目录,调整并优化参数值(注意要确保路径一致,确认已开启 5.7 新特性相关参数,如增强半同步、MTS 等)。
6. 修改系统环境变量,把可执行路径指向 5.7 实例的 basedir/bin。
7. 启动 5.7 实例,创建服务并启动。
8. 验证服务端、客户端版本是否正确。
9. 确认无误后,执行 mysql_upgrade 升级数据字典(会升级系统库:mysql,ps,sys,没有会重建)。
10. 重启实例。
11. 再次校验 5.7 的参数,尽量保持与 5.6 的兼容,尤其要注意 sql_mode 的默认值对业务的影响。
12. 清理 5.6 实例的 basedir 和 datadir 目录(可选)。
13. 如果是主从环境,还要考虑 slave_net_timeout 参数默认值改变带来的影响(主库 error 日志中出现 “ER_RPL_ZOMBIE_ENCOUNTERED” 的报错)。
在 5.7.7 以前,该参数默认是 3600s,之后改为了 60s,需要重新执行 change master to 语句,并且显式指定 master_heartbeat_period=xx,因为从 5.7.4 开始,只有执行 reset slave 才能将其重置为默认值(slave_net_timeout 值的一半)。另外提一句,也是从 5.7.4 开始,执行 change master to 语句时,可以不用先停止复制线程了。
通常情况下,升级到新版本不需要修改任何数据表。请检查MySQL发布事项中提到的升级需要注意的地方,如果发现不能直接升级的话,就先用mysqldump
将数据导出来,然后再导回去。
如果担心升级失败,就先把旧版本的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分
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)