本次实现目标:mysql-8.0.30 升级–>> mysql-8.0.31
介质准备:mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
在MySQL 8.0.16之前,需要手动调用mysql_upgrade工具升级performance_schema,INFORMATION_SCHEMA
从MySQL 8.0.16开始,mysqld 工具自动完成由之前的mysql_upgrade工具处理的所有任务
不再需要运行 mysql_upgrade,且不建议使用 mysql_upgrade
从MySQL 8.0.16开始,由mysqld --upgrade 选项控制服务器在启动时是否以及如何执行自动升级
不带–upgrade 选项或带 --upgrade=AUTO:Server启动时会尝试升级数据字典表和用户表
- –upgrade=NONE:Server启动时不会执行任何的升级动作。但是当必须要升级数据字典时,Server将会异常退出并抛出错误
- –upgrade=MINIMAL:Server启动时仅仅尝试执行数据字典的升级,其他的系统表、用户表等不会进行升级。这个选项和之前老的升级方式相同,必须再次使用mysql_upgrade 工具执行剩下的升级过程。然后需要再次重启Server。
- –upgrade=FORCE:Server启动时强制执行升级过程。使用该选项启动时需要更长的时间检查所有的对象。
相关参考:https://www.cnblogs.com/binliubiao/p/14447084.html
总体思路一句话:做好备份,然后替换数据库目录直接启动即可。
简单的升级步骤如下:用root用户执行
1.停止mysql服务
service mysql stop
2.备份整个/mysql目录,包括/mysql/data
或者mv /mysql /mysql.30
3.将tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz版本软件解压,替换原来的/mysql目录
mv /mysql-8.0.31-linux-glibc2.12-x86_64 /mysql
4.将/mysql.30/data目录拷贝到新/mysql下
mv /mysql.30/data /mysql
mkdir /mysql/log
5.赋目录属主权限
chown -R mysql.mysql /mysql
6.启动mysql
/etc/my.cnf配置文件无需改变
server mysql start
tail -f /mysql/data/mysql2.err
参考https://www.modb.pro/db/574998中查看mysql错误日志。
7.连接检查
[root@mysql2 data]# mysql -h 192.168.207.132 -P 3306 -u mysql -pabcd1234 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.31 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show variables like '%general%'; +------------------+------------------------+ | Variable_name | Value | +------------------+------------------------+ | general_log | OFF | | general_log_file | /mysql/data/mysql2.log | +------------------+------------------------+ 2 rows in set (0.01 sec) mysql> SHOW VARIABLES LIKE 'log_error'; +---------------+--------------+ | Variable_name | Value | +---------------+--------------+ | log_error | ./mysql2.err | +---------------+--------------+ 1 row in set (0.00 sec) mysql> set @@global.general_log = 1; Query OK, 0 rows affected (0.01 sec) mysql> show variables like '%general%'; +------------------+------------------------+ | Variable_name | Value | +------------------+------------------------+ | general_log | ON | | general_log_file | /mysql/data/mysql2.log | +------------------+------------------------+ 2 rows in set (0.01 sec)
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
目录