300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > MySQL数据库5.7升级到8.0版本

MySQL数据库5.7升级到8.0版本

时间:2023-04-06 18:26:49

相关推荐

MySQL数据库5.7升级到8.0版本

目录

前言一、升级前准备及注意事项二、升级过程1.官网下载对应版本的tar包2.解压数据库安装包3.修改配置f 配置文件4.关闭MySQL5.7数据库5.启动MySQL 8.0.25 数据库6.环境变量修改总结

前言

由于现有MySQL数据库版本存在大量漏洞,打补丁的成本太高(ps:要花钱),故对数据库进行版本升级,达到漏洞修复的目的。

一、升级前准备及注意事项

首先,我们要大概了解下MySQL5.7和8.0有哪些不同,参考官方文档和其他网友文章,概括总结出MySQL8.0以下几点新特性:

默认字符集由latin1变为utf8mb4。MyISAM系统表全部换成InnoDB表。JSON特性增强。支持不可见索引,支持直方图。sql_mode参数默认值变化。默认密码策略变更。新增角色管理。支持窗口函数,支持Hash join。

二、升级过程

1.官网下载对应版本的tar包

可打开MySQL数据库官网下载对应版本tar包。

此处提供8.0.25直链下载地址,直接复制到浏览器即可下载。

/archives/get/p/23/file/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

2.解压数据库安装包

# 安装包上传至原安装包目录下 我的是/usr/local/ cd /usr/local/# 解压安装包xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xztar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar# 文件夹重命名为mysql8 mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql8# 更改文件夹所属chown -R mysql.mysql /usr/local/mysql8/

3.修改配置f 配置文件

因5.7版本与8.0版本参数有所不同,为了能顺利升级,我们需要更改部分配置参数。主要注意sql_mode,其他参数最好还是按照原5.7的来,不需要做调整。下面仅展示基础配置文件:

[mysqld] datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socksymbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidsymbolic-links=0lower_case_table_names=1#!!!!!如下配置是升级8.0版本后需要修改的内容!!!!sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"default_authentication_plugin=mysql_native_password

4.关闭MySQL5.7数据库

提示:升级前建议全库备份。如备份压缩MySQL数据库的datadir等。(数据无价请谨慎操作)

命令行登陆MySQL数据库

[root@centos ~]# mysql -uroot -p

成功登陆后,关闭MySQL5.7数据库:

#查看当前数据库版本确定是否登陆错误mysql> select version();+------------+| version() |+------------+| 5.7.23-log |+------------+1 row in set (0.00 sec)mysql> show variables like 'innodb_fast_shutdown';+----------------------+-------+| Variable_name | Value |+----------------------+-------+| innodb_fast_shutdown | 1|+----------------------+-------+1 row in set (0.00 sec)# 确保数据都刷到硬盘上,更改成0mysql> set global innodb_fast_shutdown=0;Query OK, 0 rows affected (0.00 sec)mysql> shutdown;Query OK, 0 rows affected (0.00 sec)mysql> exitBye

5.启动MySQL 8.0.25 数据库

[root@centos ~]# /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/f --user=mysql & [1] 23333[root@centos ~]# -04-01T07:07:02.337626Z mysqld_safe Logging to '/var/log/mysqld.log'.-04-01T07:07:02.366244Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

观察日志看是否报错,若无报错可重新登录数据库进行测试

[root@centos ~]# mysql -uroot -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 8832Server version: 8.0.25 MySQL Community Server - GPLCopyright (c) 2000, , Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> select version();+-----------+| version() |+-----------+| 8.0.25 |+-----------+1 row in set (0.00 sec)

6.环境变量修改

(1)修改/usr/local/mysql8/support-files/mysql.server配置中basedir目录

#即数据库安装目录basedir=/usr/local/mysql8#替换原有mysql启动文件[root@centos ~]#cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysql

(2)修改/etc/profile 下PATH变量:

export PATH=$PATH:/usr/local/mysql8/bin# 生效验证[root@centos ~]# source /etc/profile[root@centos ~]# which mysql/usr/local/mysql8/bin/mysql

总结

至此,MySQL数据库已由5.7成功升级至8.0!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。