linux mysql 5.6 能升级5.7 吗

linux mysql 5.6 能升级5.7 吗,第1张

1. 下载 5.7.30 的 zip 包并解压到新的目录。

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发布对mysql数据库中的系统表的结构进行了更改,添加了新权限或特性。当你更新到新版本MySQL,你应同时更新系统表,以确保它们的结构最新。首先备份mysql数据库,然后按照下面的程序 *** 作。

在Unix或Unix类系统中,运行mysql_fix_privilege_tables脚本来更新系统表:

shell>mysql_fix_privilege_tables

你必须在服务器运行时执行该脚本。它试图连接本机上用root运行的服务器。如果root账户需要密码,在命令行中按下述方法给出密码:

shell>mysql_fix_privilege_tables--password=root_password

mysql_fix_privilege_tables脚本可以执行将系统表转换为当前格式的任何动作。运行时你可能会看见一些Duplicate column name警告;你可以忽略它们。

运行完脚本后,停止服务器并重启。

在Windows系统中,MySQL分发包括mysql_fix_privilege_tables.sql SQL脚本,你可以用mysql客户端来运行。例如,如果MySQL安装到C:\Program Files\MySQL\MySQL Server 5.1,命令应为:

C:\>

C:\Program Files\MySQL\MySQL Server 5.1

\bin\mysql -u root -p mysql

mysql>SOURCE C:/Program Files/MySQL/MySQL Server

5.1/scripts/mysql_fix_privilege_tables.sql

如果安装到其它目录,相应地更改路径名。

mysql命令将提示输入root密码;按照提示输入密码。

在Unix中,当mysql处理mysql_fix_privilege_tables.sql script脚本中的语句时,你可能会看见一些Duplicate column name警告;你可以忽略它们。

运行完脚本后,停止服务器并重启。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8788360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存