iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何将MySQL5.7升级到8.0
  • 601
分享到

如何将MySQL5.7升级到8.0

2024-04-02 19:04:59 601人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关如何将Mysql5.7升级到8.0,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.升级前准备及注意事项首先,我们要大概了解下mysql

这期内容当中小编将会给大家带来有关如何将Mysql5.7升级到8.0,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

1.升级前准备及注意事项

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

  • 默认字符集由latin1变为utf8mb4。

  • MyISAM系统表全部换成InnoDB表。

  • JSON特性增强。

  • 支持不可见索引,支持直方图。

  • sql_mode参数默认值变化。

  • 默认密码策略变更。

  • 新增角色管理。

  • 支持窗口函数,支持Hash join。

根据版本变化及官方升级教程,列举出以下几点注意事项:

  • 注意字符集设置。为了避免新旧对象字符集不一致的情况,可以在配置文件将字符集和校验规则设置为旧版本的字符集和比较规则。

  • 密码认证插件变更。为了避免连接问题,可以仍采用5.7的mysql_native_passWord认证插件。

  • sql_mode支持问题。8.0版本sql_mode不支持NO_AUTO_CREATE_USER,要避免配置的sql_mode中带有NO_AUTO_CREATE_USER。

  • 是否需要手动升级系统表。在MySQL 8.0.16版本之前,需要手动的执行mysql_upgrade来完成该步骤的升级,在MySQL 8.0.16版本及之后是由mysqld来完成该步骤的升级。

2.具体升级过程

下面以linux系统为例,展示下具体升级过程。我的系统是Centos7.7,原版本是MySQL5.7.23,以In-Place方式直接升级到MySQL8.0.19。

2.1 下载解压安装包

官网下载对应版本的tar包,可通过wget下载或者本地下载后上传。

下载地址:
https://downloads.mysql.com/arcHives/commUnity/
选择mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

执行以下步骤解压tar包:

# 安装包上传至原安装包目录下 我的是/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/

2.2 更改配置文件my.cnf

因5.7版本与8.0版本参数有所不同,为了能顺利升级,我们需要更改部分配置参数。主要注意sql_mode、basedir、密码认证插件及字符集设置,其他参数最好还是按照原5.7的来,不需要做调整。下面展示下更改后的配置文件:

# 最后几个for8.0的参数要格外注意
[mysqld]
user = mysql        
datadir = /data/mysql/data  
port = 3306               
Socket = /data/mysql/tmp/mysql.sock
pid-file  = /data/mysql/tmp/mysqld.pid
tmpdir = /data/mysql/tmp    
skip_name_resolve = 1
max_connections = 2000
group_concat_max_len = 1024000
lower_case_table_names = 1
log_timestamps=SYSTEM
max_allowed_packet = 32M
binlog_cache_size = 4M
sort_buffer_size = 2M
read_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 96M
max_heap_table_size = 96M
max_length_for_sort_data = 8096
default_time_zone = '+8:00'
#logs
server-id = 1003306
log-error = /data/mysql/logs/error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/logs/slow.log
long_query_time = 3
log-bin = /data/mysql/logs/binlog
binlog_fORMat = row
log_bin_trust_function_creators = 1
gtid_mode = ON
enforce_gtid_consistency = ON
#for8.0
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
character-set-server = utf8
collation_server = utf8_general_ci
basedir = /usr/local/mysql8
skip_ssl
default_authentication_plugin=mysql_native_password

2.3 执行升级程序

所有前置工作准备好后就可以开始正式升级了,不过升级前还是建议先全库备份下。万事俱备后,按照如下指示进行正式升级。

# 进入原5.7 mysql命令行 正确关闭数据库
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
# 退出至终端 用mysql8.0.19客户端直接启动
[root@centos ~]# /usr/local/mysql8/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql & 
[1] 23333
[root@centos ~]# 2020-05-20T07:07:02.337626Z mysqld_safe Logging to '/data/mysql/logs/error.log'.
2020-05-20T07:07:02.366244Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/data
# 可观察下错误日志看是否报错 然后重新登录测试
[root@centos ~]# mysql -uroot -p123456 
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 17
Server version: 8.0.19 MySQL Community Server - GPL
Copyright (c) 2000, 2018, oracle and/or its affiliates. All rights reserved.
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.19    |
+-----------+
1 row in set (0.00 sec)

2.4 环境变量修改

因basedir由/usr/local/mysql变成了/usr/local/mysql8,故相关环境变量推荐修改下。可按照以下步骤来操作验证:

# 修改mysql服务启动项配置
vi /etc/init.d/mysql
# 修改basedir目录
basedir=/usr/local/mysql8
# 修改PATH变量
vi /etc/profile 
# 将PATH中的/usr/local/mysql/bin改为/usr/local/mysql8/bin 
# 生效验证
[root@centos ~]# source /etc/profile
[root@centos ~]# which mysql
/usr/local/mysql8/bin/mysql
[root@centos ~]# mysql -V
mysql  Ver 8.0.19 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

至此,我们的数据库由5.7成功升级至8.0!对比MySQL安装过程及升级过程,发现二者很相似,其实升级过程并不复杂,复杂的是升级后的验证及兼容测试,特别是对于复杂的业务库,MySQL版本升级还是要小心的。真实环境建议先升级从库,验证无误后再逐步对主库进行升级。

上述就是小编为大家分享的如何将MySQL5.7升级到8.0了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 如何将MySQL5.7升级到8.0

本文链接: https://www.lsjlt.com/news/60282.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何将MySQL5.7升级到8.0
    这期内容当中小编将会给大家带来有关如何将MySQL5.7升级到8.0,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.升级前准备及注意事项首先,我们要大概了解下MySQL...
    99+
    2022-10-18
  • suse11 openssh如何升级到8.0
    suse11 openssh如何升级到8.0,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SUSE 11 升级Opensshopenssh 官网下载地址:http://ww...
    99+
    2023-06-05
  • centos7+ mysql5.7 升级到mysql8+
    参考网址吧。 按如下网址提供的实操步骤,顺利完成了mysql5.6的卸载和mysql8.20的安装。 注意: 1、在初始化指令步骤,会自动生成一个数据库root密码。注意先保存下来。防止无法登录。 2、数据库安装完成后需要配置可远程登录,参...
    99+
    2018-01-09
    centos7+ mysql5.7 升级到mysql8+
  • mysql5.6怎么升级到mysql5.7
    mysql5.6怎么升级到mysql5.7,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、停止mysql5.6数据库服务[root@host...
    99+
    2022-10-19
  • MySQL 5.7怎么升级到8.0
    这篇文章主要讲解了“MySQL 5.7怎么升级到8.0”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL 5.7怎么升级到8.0”吧!为什么升级到My...
    99+
    2022-10-19
  • MySQL如何从5.5升级到8.0(使用命令行升级)
    目录准备1、下载要安装的mysql版本2、配置环境变量3、添加配置文件安装1、卸载MySQL5.52、安装新的MySQL8.0总结谁没事想重装数据库啊 学到了数据库原理,实验作业里面有新建角色的SQL语句,但是我打上去运...
    99+
    2023-03-06
    mysql5.0升级到8.0 mysql版本升级 如何升级mysql
  • centos6、7如何在线升级mysql到mysql5.7
    本篇文章给大家主要讲的是关于centos6、7如何在线升级mysql到mysql5.7的内容,感兴趣的话就一起来看看这篇文章吧,相信看完centos6、7如何在线升级mysql到mysql5.7对大家多少有...
    99+
    2022-10-18
  • 操作mysql5.7升级到mariadb10.2.16方法
    下面讲讲关于操作mysql5.7升级到mariadb10.2.16方法,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完操作mysql5.7升级到mariadb10.2.16方法这...
    99+
    2022-10-18
  • MySQL 5.7升级到8.0详细过程
    一、升级前准备 1.1.MySQL提供mysql-shell验证方式,可以下载后进行验证: 下载shell验证文件:         https://cdn.mysql.com/archives/mysql-shell/mysql-she...
    99+
    2023-09-06
    mysql 数据库 服务器
  • centos中如何将python2.7升级到python2.7.13
    这篇文章主要介绍了centos中如何将python2.7升级到python2.7.13,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。系统版本centos 7.21.pytho...
    99+
    2023-06-04
  • 教你如何将windows7升级到win10
      随着windows10系统的发布,大部分用户都去升级了系统,不过也有小部分windows7系统的用户觉得win10还不够稳定,依旧观望不升级,最近就有个windows7的用户想要升级到win10系统,那么我们该如何升级呢接下来小编就把w...
    99+
    2023-07-12
  • 如何将项目升级到vue-cli3
    这篇文章将为大家详细讲解有关如何将项目升级到vue-cli3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 原以为升级vue-cli3的路线是这样的:创建vue-cl...
    99+
    2022-10-19
  • 如何将Qt项目升级到Qt6
    小编给大家分享一下如何将Qt项目升级到Qt6,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!直观总结增加了很多轮子,同时原有模块拆分的也更细致,估计为了方便拓展个管...
    99+
    2023-06-20
  • 如何将Fedora 4升级到Fedora 9
    这篇文章将为大家详细讲解有关如何将Fedora 4升级到Fedora 9,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。安装fedora-release和fedora-release-note...
    99+
    2023-06-07
  • 如何将Fedora 29升级到Fedora 30
    这篇文章主要为大家展示了“如何将Fedora 29升级到Fedora 30”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何将Fedora 29升级到Fedora 30”这篇文章吧。Fedora...
    99+
    2023-06-16
  • 升级到MySQL5.7后开发有什么坑
    这篇文章主要介绍升级到MySQL5.7后开发有什么坑,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言前段时间,将线上MySQL数据库升级到了5.7。考虑到可能产生的不兼容性,在升级...
    99+
    2022-10-18
  • opatch auto如何将11.2.0.4 rac升级到11.2.0.4.160419
    这篇文章给大家介绍opatch auto如何将11.2.0.4 rac升级到11.2.0.4.160419,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 之前执行patch都是选择手...
    99+
    2022-10-19
  • linux中如何将Fedora 31升级到Fedora 32
    小编给大家分享一下linux中如何将Fedora 31升级到Fedora 32,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!将 Fedora 31 Worksta...
    99+
    2023-06-16
  • MySQL使用命令行怎么从5.5升级到8.0
    本篇内容介绍了“MySQL使用命令行怎么从5.5升级到8.0”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我用的数据库编辑软件是sqlyog...
    99+
    2023-07-05
  • 怎样将MySQL 5.6.47升级到5.7.20
    今天就跟大家聊聊有关怎样将MySQL 5.6.47升级到5.7.20,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL升级方式有两种,一种叫I...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作