【MySQL】mysql | MySQL5.7升级到MySQL8.0 | docker安装mysql8 | docker mysql8 连接失败问题 | docker mysql8 表名大小写不敏感问_docker环境mysql5.7升级mysql8.0-程序员宅基地

技术标签: mysql  数据库  

一、说明

        1、安全扫描MySQL5.7安全漏掉较多,要求将数据库升级到指定的8.0版本

        2、MySQL已经存有大概6个库的正在跑业务

        3、时间要求紧迫,需要尽快处理

        4、5.7用的是物理机yum安装

二、解决方案

        1、8.0用docker安装

        2、停机5.7并备份,阻止增量

        3、启动8.0镜像,存储映射到物理机

        4、进入容器并导入SQL

三、具体步骤

1、停机5.7前,先进行数据备份

1)创建存储目录

mkdir /home/mysql8.0/mysql_data/sqlbak

2)导出全量数据库sql

mysqldump -u root -p db1 > /home/mysql8.0/mysql_data/sqlbak/db1_20231205.sql

3)停机5.7并关闭开机自启

systemctl stop mysqld
systemctl disable mysqld

~~

 2、启动8.0

1)启动docker镜像

docker run --name mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=GXbtv3Hq%fKfYqDp -v /home/mysql8.0/mysql_data:/var/lib/mysql -d --restart=always -e MYSQL_DATABASE=mysql -e MYSQL_INNODB_ENGINE=InnoDB -e MYSQL_CHARSET=utf8mb4 mysql:latest --lower_case_table_names=1

2)没装docker的可以参考这个

https://blog.csdn.net/Single_for_life/article/details/133653113

~~

3、导入数据

1)进入容器

docker exec -it mysql8.0 bash
mysql -u root -p

2)解决navicat连接失败(8.0后加密算法问题)

use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'GXbtv3Hq%fKfYqDp';

3)创建数据库

create database `db1`;

说明: 库名用反向单引号括起来,不然中横线的库名就会创建失败;比如: 【db-biz1】就会失败,而【`db-biz1`】就可以成功

4)导入数据

use `db1`;
source /var/lib/mysql/sqlbak/db1.sql;
commit;

~~

4、其他补充

1)docker容器启动,镜像最好不要删除;如果删除了,root的navicat连接可能会失败,需要重新执行【解决navicat连接失败(8.0后加密算法问题)】这个操作;原因是没有通过改配置文件的方式修改编码规则;这个没有验证,理论上存在这种情况

2)数据库能装物理机还是装物理机

3)上面的步骤需要严格按照顺序执行,不然就会出现问题;比如:docker用到的3306,保留源端口,为的是业务应用不用修改端口无需打包重新部署;而必须停止5.7的服务,不然docker就会启动失败

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/myloverisxin/article/details/134822702

智能推荐

搭建流媒体推流/拉流服务(RTMP/RTSP/HLS/HTTP-FLV)_rtmp拉流地址-程序员宅基地

文章浏览阅读1.9w次,点赞21次,收藏110次。搭建流媒体服务,将rtsp或者rtmp视频流转换为H5可以直接播放的视频。用在直播、安防监控、视频点播、屏幕画面转播等_rtmp拉流地址

【天梯赛】L2-010. 排座位(并查集)_hive排座位-程序员宅基地

文章浏览阅读292次。布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。输入格式:输入第一行给出3个正整数:N(<= 100),即前来参宴的宾客总人数,则这些人从1到N编号;M为已知两两宾客之间的关系数;K为查询的条数。随后M行,每行给出一对宾客之间的关系,格式为:“宾客..._hive排座位

java中nextToken,Java StringTokenizer nextToken()用法及代碼示例-程序员宅基地

文章浏览阅读1.5k次。StringTokenizer類的nextToken()方法用於從此StringTokenizer依次返回下一個標記。用法:public String nextToken()參數:該方法不帶任何參數。返回值:該方法返回字符串令牌化程序行中存在的下一個令牌。下麵的程序說明StringTokenizer的nextToken()方法的用法:示例1:// Java code to illustrate n..._next token的用法

如何自动校正系统时间_timesync 自动-程序员宅基地

文章浏览阅读268次。网上一些校正系统时间的方法,大多需要手动操作,有没有什么工具可以自动完成相关的操作呢? 可以试试NetTime工具(http://www.timesynctool.com/).安装该工具时会创建一个自启动服务,以后每次启动系统,它都会随之启动并自动校正系统时间。_timesync 自动

CSS:如何清除a标签之间的默认留白间距_css处理手机自动留白安全距离-程序员宅基地

文章浏览阅读2.3k次。即使我们使用了类似 *{margin: 0;padding: 0;} 这样的代码重置了浏览器默认样式,也会发现类似标签这种inline-block元素,它们之间也还存在着间距。demo:默认情况123456789101112131415_css处理手机自动留白安全距离

数据分析与数据挖掘-程序员宅基地

文章浏览阅读2.0k次,点赞14次,收藏17次。第一章、概述1.1.1数据分析:采用适当的统计分析方法对收集到的数据进行分析、概括和总结,对数据进行恰当的描述,提取出有用的信息的过程。1.1.2数据挖掘:从海量数据种通过相关的算法来发现隐藏在数据中的规律和知识的过程。1.1.3知识发现的过程1.1.4数据分析与数据挖掘的区别1.1.5数据分析与数据挖掘的联系数据-------数据分析----->信息-------数据挖掘-------->知识1.2分析与挖掘的数据类型1.3数据分析..._数据分析与数据挖掘

随便推点

Linux系统中的日志服务管理_linux系统日志服务-程序员宅基地

文章浏览阅读1.1k次。目录1.日志介绍1.1 什么是日志1.2 Linux系统使用的两种系统日志服务1.3 ELK2.rsyslog的管理2.1 系统日志术语1.2 实验1.日志介绍1.1 什么是日志网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述日志记录的内容包括: 历史事件:时间,地点,人物,事件 日志级别:事件的关键性程度,Loglevel 1.2 Linux系统使用的两种系统日_linux系统日志服务

linux 上编译arm64,Arch Linux 搭建 arm64/AArch64 交叉编译环境-程序员宅基地

文章浏览阅读3.2k次。Arch Linux 搭建 arm64/AArch64 交叉编译环境0. 系统环境系统:Arch Linux: 成文时间最新工具版本:Binutils:2.34-1GCC:9.2.1+20200130-2GNUMake:4.31. 编译交叉编译工具链此部分参考博客.交叉编译工具链需要用到至少七个工具(库):Binutilshttps://www.gnu.org/software/binutils/..._linux编译arm64的库

Pytorch分布式训练/多卡训练(二) —— Data Parallel并行(DDP)(2.2)(代码示例)(BN同步&主卡保存&梯度累加&多卡测试inference&随机种子seed)_model = ddp(model, device_ids=[local_rank], output-程序员宅基地

文章浏览阅读6.1k次,点赞11次,收藏50次。DDP的使用非常简单,因为它不需要修改你网络的配置。其精髓只有一句话model = DistributedDataPrallel(model, device_ids=[local_rank], output_device=local_rank) 原本的model就是你的PyTorch模型,新得到的model,就是你的DDP模型。最重要的是,后续的模型关于前向传播、后向传播的用法,和原来完全一致!DDP把分布式训练的细节都隐藏起来了,不需要暴露给用户,非常优雅!初..........._model = ddp(model, device_ids=[local_rank], output_device=local_rank)

Android 多个Fragment嵌套导致的三大BUG-程序员宅基地

文章浏览阅读182次。Android有碎片化的问题,当然本文说的碎片化不是指的系统版本碎片化的问题,而是Fragment组件碎片化的问题。很久之前,在Android 3.1系统发布的时候,Google推出了使用Fragment来更加容易地开发平板和手机应用,虽然Activity还是页面结构的主体,但是却可以在其基础上使用多个Fragment来构建页面,这些Fragment都是有各自的生命周期的。最常见的是列表和详情..._android fragment 嵌套fragment 弹窗里面控件 点击多次才生效

基于mysql的乐观锁的作用_mysql 悲观锁与乐观锁的详解-程序员宅基地

文章浏览阅读281次。悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。不要把他们与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)混为一谈。一、悲观锁顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需要将数据锁定。悲观锁的实现,通常依靠数据库提供的锁机制实现,比如mysql的排他锁,select ......._mysql乐观锁的作用

【Patterns 2023】(综述)Computer-aided multi-objective optimizationin small molecule discovery_满足多种准则的分子,molecule discovery-程序员宅基地

文章浏览阅读81次。该空间中的分子可以隐式定义(例如,作为可以使用生成模型解码的潜在变量)或显式定义(即作为分子库)。1、Multiple objectives, which are not aggregated into a single scalar objective, are considered. Some trade-off exists between objectives (i.e., they are not perfectly correlated).考虑多个目标,这些目标不会聚合为单个标量目标。_满足多种准则的分子,molecule discovery

推荐文章

热门文章

相关标签