docker安装 mysql 8.0.32
首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭
命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld
如果不想重启虚拟机 可以执行 systemctl stop mysqld
//指定版本
docker pull mysql:8.0.32
// 拉取最新的mysql
docker pull mysql:latest
二、查看镜像
docker images

三、创建要挂载的文件夹
[root@~]# mkdir -p /opt/docker/mysql8/conf/
[root@~]# mkdir -p /opt/docker/mysql8/logs/
[root@~]# mkdir -p /opt/docker/mysql8/data/
# 拷贝一份配置文件,先随便启动一个镜像
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=5255 -d mysql:8.0.32
# 启动成功后,进入容器内部拷贝配置文件,到宿主主机
docker cp mysql8:/etc/mysql /opt/docker/mysql8/conf
# 删除刚才的容器,重新创建容器
# 先停止容器
docker stop mysql8
# 再删除容器
docker rm mysql8
四、执行容器
启动mysql ,挂载配置文件,数据持久化到宿主主机
docker run -itd -p 3306:3306 --name mysql8 -e character-set-server=utf8mb4 --privileged=true --restart unless-stopped -v /opt/docker/mysql8/conf/mysql:/etc/mysql -v /opt/docker/mysql8/logs:/logs -v /opt/docker/mysql8/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=5255 -d mysql:8.0.32 --lower_case_table_names=1
命令解释:
-p 端口映射
–name 容器名字,自定义
–privileged=true 挂载文件权限设置
–restart unless-stopped 设置 开机后自动重启容器
-v /opt/docker/mysql8/conf/mysql:/etc/mysql 挂载配置文件
-v /opt/docker/mysql8/logs:/logs \ 挂载日志
-v /opt/docker/mysql8/data:/var/lib/mysql \ 挂载数据文件 持久化到主机,
-v /etc/localtime:/etc/localtime 容器时间与宿主机同步
-e MYSQL_ROOT_PASSWORD=123456 设置密码
-d mysql:8.0.32 后台启动,mysql
--lower_case_table_names=1 要加在镜像名后面,镜像名前面是参数,后面是mysql配置,不然会报错
查看容器状态
docker ps
五、配置远程连接
# 进入容器
docker exec -it mysql8 /bin/bash
# 打开MySQL 命令行 密码 5255
mysql -uroot -p
use mysql;
# 创建账户
CREATE USER 'adminx'@'%' IDENTIFIED BY '123456';
# 授权账户
GRANT ALL ON *.* TO 'adminx'@'%';
# 刷新权限
FLUSH PRIVILEGES;
退出 mysql客户端 exit 或者ctrl+c
六、密码正确,登录错误
2、进入容器
$ docker exec -it mysql bash
1
3、修改配置文件
3.1 进入 /etc/mysql/conf.d 文件目录:
$ cd /etc/mysql/conf.d
1
3.2 创建MySQL配置文件:mysql.cnf
$ touch mysql.cnf
1
3.3 在 mysql.cnf 配置文件中填充以下内容echo mysql.cnf [mysqld] \ skip-grant-tables >>
[mysqld]
# 跳过密码登录
skip-grant-tables
1
2
3
3.4 退出容器,重启mysql容器
$ exit
$ docker restart mysql
七、配置mysql的字符集
需要创建 vim /opt/mysql.cnf
并复制以下内容
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
# 跳过密码登录
#skip-grant-tables
#bind-address = 127.0.0.1
init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
lower_case_table_names=1
然后执行
docker cp /opt/mysql.cnf mysql8:/etc/mysql/conf.d
安装完以后测试本地windows系统上的 navicat

相关文章:
docker安装 mysql 8.0.32
首先下载 mysql 其次如果虚拟机以前安过mysql 需要把mysql关闭 命令 永久关闭mysql 但是当前不生效 需要重启虚拟机 systemctl enable mysqld 如果不想重启虚拟机 可以执行 systemctl stop mysqld //指定版本 docker pull mysql:8.0.32 // 拉取最新的…...
OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换
前言 在现代工业自动化领域,OPC UA(开放性生产控制和统一架构)是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用,帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…...
【数据库学习】ClickHouse(ck)
1,ClickHouse(CK) 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 1)特性 按列存储,列越多速度越慢; 按列存储,数据更容易压缩(类型相同、区分度);…...
Springboot之策略模式
Springboot之策略模式 策略模式的几种方式1 简单实现1.1 创建策略接口1.2 实现付款方式1.2.1 微信付款1.2.2 支付宝付款 1.3 创建策略调度器1.4 创建配置类 策略模式的几种方式 1 简单实现 场景:策略模式实现不同类型的付款动作 1.1 创建策略接口 package com.p…...
HTTP 协议和 TCP/IP 协议之间有什么区别?
HTTP(超文本传输协议)和TCP/IP(传输控制协议/互联网协议)是两种在互联网通信中广泛使用的协议,它们之间的区别和联系对许多人来说可能还不是很清晰,今天我们就带大家来一起了解一下HTTP和TCP/IP协议这2者之…...
【Effective C++】让自己习惯C++
Item01 视C为一个语言联邦 C由四个次语言组成: C:过程形式,没有模板、没有异常、没有重载Object-Oriented C:面向对象形式,类(构造函数和析构函数)、封装、继承、多态Template:泛型…...
第十一章 请求响应
第十一章 请求响应 1.概述2.请求-postman工具3.请求-简单参数&实体参数4.请求-数组集合参数5.请求-日期参数&JSON参数6.请求-路径参数7.响应-ResponseBody&统一响应结果8.响应-案例 1.概述 将前端发送的请求封装为HttpServletRequest对象 在通过HttpServletRespo…...
【React】脚手架创建项目
文章目录 创建React项目目录结构分析了解PWA脚手架中的webpack 创建React项目 ◼ 创建React项目的命令如下: 注意:项目名称不能包含大写字母 另外还有更多创建项目的方式,可以参考GitHub的readme 命令: create-rea…...
力扣70. 爬楼梯(动态规划 Java,C++解法)
Problem: 70. 爬楼梯 文章目录 题目描述思路解题方法复杂度Code 题目描述 思路 由于本题目中第i层台阶只能由于第i- 1层台阶和第i-2层台阶走来,所以可以联想到动态规划,具体如下: 1.定义多阶段决策模型:对于每一上台阶看作一种状…...
Wpf 使用 Prism 实战开发Day13
配置 AutoMapper 关系映射 在上一节 ToDoController 控制器,或 IToDoService 服务接口中,方法的传参都是直接传的实体类。但在实际开发过程中,这样是不允许的。标准且规范的做法是,定义一个数据传输层,即Dto层。 一.在…...
62 C++ 多线程 -- mutex互斥量只能使用一次的问题分析-----以及解决方案递归mutex:recursive_mutex。
一 前提 以及问题 我们注意到,如果mutex.lock()两次,就会有问题 如下的代码有runtime exception mutex mymutex;mymutex.lock();mymutex.lock();//共享数据访问处理代码mymutex.unlock();mymutex.unlock(); 但是有这样的case存在 class Teacher183 …...
Chrome Devtools 调试指南
Chrome DevTools 是一套内置于 Google Chrome 浏览器的开发者工具,可以帮助开发者进行网页和应用的调试、优化和测试。以下是一些基本的调试指南: 打开 Chrome DevTools: 你可以通过以下方式之一打开 DevTools: 右键点击页面上的任…...
【Qt5】QString的成员函数chop
2024年1月19日,周五下午 QString 的 chop 方法用于从字符串的末尾移除指定数量的字符。这个方法会修改原始字符串,并返回 void。 下面是一个简单的示例: #include <QString> #include <QDebug>int main() {QString originalStr…...
Spring中的注解
Spring的配置 spring 2.5前xml spring 2.5后xmlannotation spring 3.0后annotationJavaConfig配置类 注解: 1.注入类 替换:<bean id"" class""></bean> 位置:类 语法:Component(value"注入容器中的…...
JavaScript 中的事件
1、鼠标事件: 鼠标单击事件(click): 方法一 (onclick) <button id"btn" onclick"alert(88888)">点击弹框</button> 方法二(利用addEventListener)…...
hasattr、getattr、setattr
在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询。这些函数提供了一种方便的方式来检查对象是否具有特定属性,获取属性的值,以及设置属性的值。 1. hasattr hasattr()函数是一种重要…...
构建高可用消息队列系统 01
构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代,消息队列系统扮演着至关重要的角色,它们被广泛应用于分布式系统、微服务架构…...
十本你不容错过的Docker入门到精通书籍推荐
前言: 最近有许多小伙伴私信让我推荐几本关于Docker学习的书籍,今天花了一下午的时间在网上查阅了一些资料和结合自己平时工作中的一些学习参考资料书籍写下了这篇文章。注意以下书籍都是十分优秀的Docker学习书籍(因此排名不分先后ÿ…...
【AI接口】语音版、文心一言大模型和AI绘图、图片检测API
文章目录 一、语音版大模型AI1、接口2、请求参数3、请求参数示例4、接口返回示例 二、AI图片鉴黄合规检测API1、接口2、请求参数3、请求参数示例4、接口返回示例5、报错说明6、代码开源 三、人工智能AI绘画API1、接口2、请求参数3、请求参数示例4、接口返回示例5、AI绘画成果展…...
VUE 中的 v-for 和 v-if 是否可以共存
VUE 中的 v-for 和 v-if 是否可以共存 前言1、面试经2、正确回答3、总结总结: 前言 要成功,先发疯,头脑简单往前冲! 三金四银,金九银十,多学知识,也不能埋头苦干,要成功,…...
别再傻傻用IO翻转了!用STM32的SPI+DMA驱动WS2812灯带,实测1920颗灯珠依然稳如老狗
STM32 SPIDMA驱动WS2812灯带:从时序优化到千级灯珠稳定控制实战 1. 为什么GPIO翻转方案在大型项目中频频翻车? 很多嵌入式开发者初次接触WS2812灯带时,都会尝试用GPIO翻转来实现控制——毕竟看起来只需要一根信号线,似乎用普通IO口…...
别再只用labelme了!用ENVI 5.3的ROI工具给遥感影像打深度学习标签,保姆级避坑指南
遥感影像标注革命:ENVI ROI工具在深度学习标签制作中的专业实践 引言 在遥感影像分析与深度学习模型训练的工作流中,数据标注环节往往成为制约效率提升的关键瓶颈。传统标注工具如labelme虽然在小尺寸自然图像处理中表现出色,但当面对动辄数G…...
手把手教你用STM32的编码器模式,精准读取JGB37-520电机转速(附TB6612驱动配置)
基于STM32编码器模式实现JGB37-520电机闭环控制实战指南 在智能硬件开发领域,精确控制电机转速和位置是实现高质量运动控制的基础。JGB37-520作为一款带有霍尔编码器的减速电机,配合TB6612驱动模块,可以构建完整的闭环控制系统。本文将深入解…...
告别邮件测试烦恼:MailHog一站式解决方案让开发调试更高效
告别邮件测试烦恼:MailHog一站式解决方案让开发调试更高效 【免费下载链接】MailHog Web and API based SMTP testing 项目地址: https://gitcode.com/gh_mirrors/ma/MailHog 还在为测试邮件功能而烦恼吗?每次开发邮件发送模块时,你是…...
emacs-which-key替代方案对比:为什么它成为Emacs 30标准功能
emacs-which-key替代方案对比:为什么它成为Emacs 30标准功能 【免费下载链接】emacs-which-key Emacs package that displays available keybindings in popup 项目地址: https://gitcode.com/gh_mirrors/em/emacs-which-key emacs-which-key是一款能够在Ema…...
从靶场到实战:用Vulhub在Docker里一键复现Struts2全系列漏洞(S2-001到S2-053)
从靶场到实战:用Vulhub在Docker里一键复现Struts2全系列漏洞 在安全研究领域,能够快速搭建可复现的漏洞环境是每个从业者的基本功。传统方式需要手动配置Java环境、下载特定版本的Struts2框架、部署Web服务器,整个过程耗时费力且容易出错。而…...
CARTGen-IR: Synthetic Tabular Data Generation for Imbalanced Regression——基于CART的表格数据不平衡回归合成采样方法
一、研究问题与背景 1.1 问题定义 不平衡回归:在连续目标变量中,极端值(高值或低值)样本稀少,导致模型偏向预测平均值,忽略重要极端情况。 应用场景:极端天气预测、海面温度异常、药物敏感性检…...
别再只用SSH了!深入对比新华三设备Telnet的三种认证模式(None/Password/AAA)及适用场景
新华三设备Telnet认证模式深度解析:从安全权衡到场景适配 在网络设备管理的工具箱里,远程访问协议的选择往往决定了运维效率和安全性之间的平衡点。作为网络管理员,我们常常陷入这样的困境:是选择便捷性还是安全性?是追…...
从串行通信到SerDes:深入聊聊CDR电路的那些‘辅助’设计(频率捕获篇)
从串行通信到SerDes:深入解析CDR电路中的频率捕获设计 在高速串行通信系统中,时钟和数据恢复(CDR)电路扮演着至关重要的角色。当数据速率突破10Gbps甚至更高时,传统的锁相环(PLL)设计面临着前所未有的挑战——如何在随机数据流中快速准确地锁…...
麒麟系统离线安装PostgreSQL?手把手教你用dnf和repotrack搞定所有依赖包
麒麟系统离线部署PostgreSQL全攻略:从依赖包下载到本地仓库构建 在政企级IT基础设施中,麒麟操作系统因其安全可控的特性成为关键业务系统的首选平台。当这些系统运行在物理隔离的内网环境时,如何解决软件依赖的"最后一公里"问题&am…...
