004-利用Docker安装Mysql

利用Docker安装Mysql

一、在镜像仓库找到 Mysql

1.镜像仓库地址

https://hub.docker.com

2.复制命令
powershell 复制代码
docker pull mysql:8.0
3.下载Mysql镜像
4.查看镜像
powershell 复制代码
docker images

二、创建实例并启动

powershell 复制代码
docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
html 复制代码
参数说明:
-p3306:3306:将容器的3306端口映射到主机的3306端口
-v/mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v/mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v/mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-eMYSQLROOTPASSWORD=root:初始化root用户的密码
  • 查看容器:
powershell 复制代码
docker ps -a

发现容器状态为 Exited 表示启动失败

  • 查看容器启动失败的日志
powershell 复制代码
docker logs containerID

检查本地配置目录:

确认本地的 /mydata/mysqlconf目录中 是否存在 conf.d 和 mysql.conf.d 子目录,如果不存在,创建这个子目录。

powershell 复制代码
-- 创建子目录
mkdir -p /mydata/mysql/conf/conf.d
mkdir -p /mydata/mysql/conf/mysql.conf.d
  • 再启动Mysql
powershell 复制代码
docker start mysql
  • 查看容器启动状态
powershell 复制代码
docker ps

status:Up 。。表示容器正在运行

三、用本地工具连接数据库

进入到容器内部:

powershell 复制代码
docker exec -it mysql /bin/bash

四、设置 Mysql 配置

java 复制代码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake 
skip-name-resolve
  • 重启mysql
powershell 复制代码
docker restart mysql
相关推荐
这个DBA有点耶6 小时前
NULL不是空——数据库里最反直觉的设计,90%新人踩过的坑
数据库·mysql·代码规范
辉的技术笔记10 小时前
Dify 自部署为什么跑不动?6 层瓶颈诊断法教你定位
docker
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
这个DBA有点耶1 天前
SQL改写进阶:标量子查询的“隐形代价”与消除实战
数据库·mysql·架构
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
smallyoung1 天前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·mysql·postgresql
数据技术说2 天前
MySQL 迁移实战——如何实现真正的"零改造"平滑切换
mysql
lichenyang4534 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4534 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4534 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器