目录

  • 前言
  • 一、升级前准备及注意事项
  • 二、升级过程
    • 1.官网下载对应版本的tar包
    • 2.解压数据库安装包
    • 3.修改配置my.cnf 配置文件
    • 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直链下载地址,直接复制到浏览器即可下载。

https://downloads.mysql.com/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.xz
tar -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.修改配置my.cnf 配置文件

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

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
symbolic-links=0
lower_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)
# 确保数据都刷到硬盘上,更改成0
mysql> 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> exit
Bye

5.启动MySQL 8.0.25 数据库

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

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

[root@centos ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8832
Server version: 8.0.25 MySQL Community Server - GPLCopyright (c) 2000, 2021, 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> 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!

MySQL数据库5.7升级到8.0版本相关推荐

  1. autopoi升级到4.0版本修改方法

    以下为autopoi升级到4.0版本修改方法: 1.样式相关 图案颜色和样式设置: 其他颜色修改类似 HSSFColor.WHITE.index => IndexedColors.WHITE.i ...

  2. 一直在构建版本_升级成2.0版本的自己,生活会有什么不一样

    李笑来老师在<把时间当作朋友>的序言中有段话: 人们生活在同一个世界,却又各自生活在自己的那个版本之中,改变自己,就意味着属于自己那个版本的世界也会随之变化,其中包括时间的属性,当同样的时 ...

  3. recovery for mysql_Recovery Toolbox for MySQL(MySQL数据库修复软件) V 2.0.3.0 官方版

    Recovery Toolbox for MySQL是款高效稳定的MySQL数据库修复工具,辅助用户迅速从损坏的MySQL数据库中恢复数据,支持大多数数据库格式,完成后,可以保存为SQL脚本,也可以导 ...

  4. 【Blog.Core开源】将Program升级为.NET6.0版本

    大家假期好,好久不见,之前忙于其他事情,公众号暂时搁置了一个月了,新的一年开始了,很多小伙伴开始催更了,粉丝的要求必须满足. 2022年打算重点推广BCVP社区,所以还是希望有愿意投稿的小伙伴,积极投 ...

  5. Linux安装MySQL的完整步骤并有关MySQL8.0版本的问题方法

    目录 QUESTION:Linux安装MySQL的完整步骤? ANSWER: 一:使用wget 直接下载 二:安转软件源,将platform-and-version-specific-package- ...

  6. Android 高德地图升级9.2.0版本问题

    gradle 文件升级版本: //高德地图 api 'com.amap.api:3dmap:9.2.0' //高德地图定位 implementation 'com.amap.api:location: ...

  7. xadmin与mysql数据库_十八、Django3.0学习之引入xadmin

    一.将xadmin导入Django工程中 1.1 xadmin下载地址: https://github.com/sshwsfc/xadmin/tree/django2 或者: 链接:https://p ...

  8. 10双屏鼠标过不去_升级到2.0版本的双屏工作桌!家中工作高效还需利器辅助

    前言 由于没有书房,电脑桌是放在的客厅,准确来说放在阳台上,装修时打通了就变成客厅的一部分.最早和老婆达成的协议是原阳台部分给我做一个工作区,宽度大概在1300mm左右,所以桌子选了个1200mmX6 ...

  9. mysql 8 强制修改密码_Mysql 8.0版本强制无密码进入+更改密码

    **第一步:**以管理员方式打开CMD 输入net stop mysql  停用mysql服务 **第二步:**在mysql安装路径bin下 输入指令cd C:\Program Files\MySQL ...

最新文章

  1. Linux下将Mysql和Apache加入到系统服务里的方法
  2. Unsupported ONNX opset version: 11
  3. 背景建模与前景检测3(Background Generation And Foreground Detection Phase 3)
  4. 视频会议H.323协议SIP协议
  5. ASP.NET----验证码类
  6. [你必须知道的.NET]第三十五回,判断dll是debug还是release,这是个问题
  7. “光伏进社区” 应及早谋划布局
  8. 动态规划 —— 背包问题 P03 —— 多重背包
  9. [Linux]gocron定时任务平台的部署
  10. 【FFMPE系列】之FFMPEG常用命令
  11. document.addEventListener理解
  12. 【LeetCode】【字符串】题号:*14. 最长公共前缀
  13. 程序员常用的数学公式
  14. 多商户商城系统功能拆解01讲-产品架构
  15. ccsa安学网小程序_适合微信小程序安装的SSL证书有哪些
  16. c和python 入门_C语言和Python,该从哪个入门编程?
  17. 点云算法(深度学习)
  18. 做一个心无杂念的平凡人
  19. python算库存管理_年终库存盘点怎么做?无代码库存管理系统高效率!
  20. 机器学习中处理缺失值的7种方法

热门文章

  1. android8.1默认输入法,搜狗输入法安卓V8.1 哪里出错改哪里
  2. E人E本 在国内延续Ipad的战史
  3. 答评论:写在员工离职之后
  4. 什么是游戏编辑,游戏编辑日常做些什么-游戏编辑1
  5. 打枪游戏的极致体验 评Borderlands 2
  6. 使用 DML语句,对 “锦图网
  7. 【数据分析实例】 300 万条《野蛮时代》的玩家数据分析
  8. 1164: 字符串加密
  9. css 实现文字渐变以及文字颜色流动
  10. 论文学习:Good practice for conducting and reporting MEG research