本次实现目标: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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。