热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Docker中MySQL5.7如何升级到MySQL8.0.13

这篇文章主要为大家展示了“Docker中MySQL5.7如何升级到MySQL8.0.13”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家

这篇文章主要为大家展示了“Docker中MySQL5.7如何升级到MySQL8.0.13”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Docker中MySQL5.7如何升级到MySQL8.0.13”这篇文章吧。

1.备份旧的MySQL5.7的数据

记得首先要备份旧的数据,防止升级失败导致数据丢失。备份的方式有两种,一种是在宿主机直接执行导出命令,另外一种是先进入Docker环境下进行操作。主要的导出命令如下:

#方式一,直接在宿主机器进行数据备份
# 0df568 是docker的id ;-uroot -p123456 是用户名和密码;dbA dbB是要备份的数据,--databases 后面可以接多个数据库名,导出的sql到/root/all-databases3306.sql
docker exec -it 0df568 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql
#========================================================================================================================================================
#方式二,先进入到docker在执行mysqldump,然后再将导出的sql拷贝到宿主
#先进入docker
docker exec -it 0df568 /bin/bash
#可选的
source /etc/profile
#执行导出命令
mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql
#拷贝到宿主机器
#退出Docker,执行exit命令
exit
#此时,已经在宿主的环境,执行拷贝命令,将sql文件从docker红拷贝出来
docker cp 0df568:/root/all-databases3306.sql /root/all-databases3306.sql

2.拉取MySQL8.0.13的镜像,完成安装

拉取和安装MySQL其实可以完全参考官网即可。参考网址:https://hub.docker.com/r/mysql/mysql-server/ ,这里再简单的描述一下安装的过程。

2.1 拉取镜像到本地

运行下面的命令即可拉取最新的MySQL镜像

 docker pull mysql/mysql-server:lastest

拉取指定的MySQL镜像

#tag就是填写你要的版本号,例如你想要的MySQL8.0.13那么tag就是8.0.13,则执行:docker pull mysql/mysql-server:8.0.13
 docker pull mysql/mysql-server:tag

可以使用docker images查看你拉取下来的进行。

2.2 运行MySQL8.0.13镜像

运行指定的MySQL8.0.13的Docker镜像,我们在2.1步骤已经拉取了指定的镜像下来,那么可以通过docker images查看到本地的Docker镜像,得到镜像的ID和名字。接下来运行下列的命令运行MySQL8.0.13的Docker镜像:

#--name指定运行启动后的名字 -e 指定docker里的环境变量 -v 分区或者是目录映射,docker的程序数据映射到宿主的指定位置 -p 指定 宿主到docker程序的端口映射 -d 指定镜像的版本。
docker run --name=mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -v /root/dockerdata/mysql8.0/data:/var/lib/mysql -p 3307:3306 -dit mysql/mysql-server:8.0.13

查看是否在运行

# 执行下列的命令
docker ps

3.升级到MySQL8.X之后的一些问题

升级MySQL8.x后,远程连接无法连接,这样很不方便,需要进行修改。主要包括下面两方面的配置:

3.1 提供远程访问

修改用户为@'%',%代表所有的主机都可以连接,命令如下:

#先root登录到数据库,执行下列的命令
#a.使用msyql
use mysql;
#b.然后执行授权
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456'
#c.一定要刷新权限(重新加载),否则需要重启MySQL才能生效
FLUSH PRIVILEGES;

3.2 更改连接的密码校验方式

MySQL8.X的加密方式是caching_sha2_password,caching_sha2_password加密方式在远程访问时候不支持,所以需要改成:mysql_native_password

# a.修改指定的用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# b.一定要刷新权限(重新加载),否则需要重启MySQL才能生效
FLUSH PRIVILEGES;

4.导入数据到新的MySQL中

导入数据,我采用的方式是先将数据库备份文件拷贝进新的Docker,然后再执行导入命令。命令如下:

#拷贝备份的文件到docker中
docker cp /root/all-databases3306.sql 3sfsdf:/root/all-databases3306.sql 
#先进入docker环境,然后导入到数据库
docker exec -it xxx /bin/bash
mysql -u root -p < /root/all-databases3306.sql

以上是“Docker中MySQL5.7如何升级到MySQL8.0.13”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • springboot整合redis做缓存操作
    SpringCache简介Spring可以根据@Cacheable、@CachePut、@CacheEvict、@EnableCaching等注解就可以实现对数据的缓存功能。添加依 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 如何在Windows窗体应用程序中实现文件加密与解密功能
    本文介绍了在Windows窗体应用程序中实现文件加密与解密功能的步骤。首先,通过新建项目选择Windows窗体应用程序,并在自动创建的From1中构建启动窗体。然后,选择要加密的文件并获取页面的密码,判断密码是否大于六位数。如果不满足条件,提示用户添加文件后缀(.mr)以表示该文件已加密,并将文件内容进行乱码处理。通过本文的方法,可以实现文件的安全加密与解密。 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
author-avatar
罗文彬2502852027
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有