我服务器上的当前 mysql 版本是 5.0.67。我想升级到最新版本。根据我在此处阅读的内容:https://dev.mysql.com/doc/refman/5.5/en/upgrading.html,这是我的计划:
- 终止与数据库的连接(停止 Apache 等)
- 创建当前数据库(包括mysql数据库)和日志文件的备份
每次升级 1 个版本 (5.0.67 -> 5.7.10)
- 升级到最新的 5.0.x – 5.0.96
- 升级到 5.1.x
- 升级到 5.5.x
- 升级到 5.6.x
- 升级到 5.7.x
4.逻辑升级还是就地升级?
我不确定我应该在这里选择什么选项,到底有什么区别,等等?
目前,安装的源 RPM 是:mysql-5.0.67-12.15.src.rpm,当我转到http://downloads.mysql.com/archives/community/,我不确定我需要下载什么。或者可以通过命令行进行更新吗?我正在使用 SuSE Enterprise Linux 11。
编辑:这是我的更新步骤:
1.升级到5.1.x(mysqldump)
使用 mysqldump 转储所有数据库/模式
关闭 MySQL 服务器
iii. 初始化新的 MySQL 5.1.x 服务器实例
iv. 将转储文件加载到新的 MySQL 5.1.x 服务器
v. 运行 mysql_upgrade
vi. 加载帮助表
vii. 运行 mysqlcheck 检查所有表的状态
2. 升级到 5.5.x(就地升级)(对 5.6.x 和 5.7.x 重复步骤)
i. 关闭 MySQL 服务器
ii. 备份 MySQL 服务器
iii. 将目录更改为新服务器版本
iv. 启动 MySQL 服务器
v. 运行 mysql_upgrade
vi. 加载帮助表
vii. 关闭/重启 MySQL 服务器
viii. 运行 mysqlcheck 检查所有表的状态
我是否遗漏了什么?
答案1
这里有两篇关于从 5.0 升级到 5.6/5.7 的博客: http://mysqlserverteam.com/upgrading-directly-from-mysql-5-0-to-5-6-with-mysqldump/ http://mysqlserverteam.com/upgrading-directly-from-mysql-5-0-to-5-7-using-an-in-place-upgrade/
我的建议是:
- 使用 mysqldump 对当前 5.0.x 实例的数据库进行备份
- 将 mysqldump 文件还原到 5.1.x 的新(最新版本)实例
- 执行从 5.1.x 到 5.5.x 到 5.6.x 到 5.7.x 的“就地”升级,确保
mysql_upgrade
在升级之间运行。 - 升级前后务必检查错误日志
答案2
由于复制从属服务器始终支持主服务器的一个旧版本,具体取决于可能的限制,您还可以设置复制从属服务器链:
- 大师:5.0
- Slave1(Master 的从属):5.1
- 从站2(从站1的从站):5.5
- 从站3(从站2的从站):5.6
- 从站4(从站3的从站):5.7
一旦从属服务器跟上进度(无延迟),您就可以停止应用程序,在从属服务器 4 上发出 STOP SLAVE;,然后使用从属服务器 4 作为新主服务器恢复应用程序。如果您没有那么多机器,您可以分阶段多次执行此操作。您可能能够跳过几个版本,只需尝试一下就可以确认这一点,而无需中断主服务器。