docker安装配置mysql

一、安装mysql

1、使用docker下载mysql镜像源

复制代码
sudo docker pull mysql:5.7  #下载最新版本后面不加上:版本号

如果出现拉去镜像错误可参考文章(https://blog.csdn.net/weixin_39764056/article/details/145042307)

复制代码
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

2、查看mysql镜像源

复制代码
sudo docker images

3、创建启动mysql容器

复制代码
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=root \
  -v /mydata/mysql/conf:/etc/mysql/conf.d/ \
  -v /mydata/mysql/data:/var/lib/mysql \
  -v /mydata/local/mysql/log:/var/log/mysql \
  mysql:5.7

docker run :创建启动容器
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql/conf.d/:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d mysql:5.7:使用那个版本创建启动的容器
--restart=always:自启动容器

4、查看创建的容器(查看容器发现容器不是up状态,可使用docker logs mysql 查看日志是那儿出现的问题,一般情况是没有找到对应的文件目录,需要提前创建)

复制代码
docker ps # 查看启动的容器
docker ps -a # 查看所有的容器,包含停止的

5、测试连接Navicat

二、配置mysql容器

1、可进入mysql容器,查看mysql容器内的文件

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

2、exit退出mysql容器,在虚拟机中配置文件映射到mysql容器内,创建配置文件my.cnf

复制代码
vi /mydata/mysql/conf/my.cnf  # 是没有my.cnf文件的,创建后里面是空的,插入以下内容后保存


[mysqld]
character-set-server=utf8  # 字符集设为 utf8
collation-server=utf8_unicode_ci  # 排序规则对应 utf8,而非 latin1

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

3、保存退出后重启mysq容器(重启后发现容器关闭可能是因为里面的字符错误或者格式代码与mysql版本不适配,需要重新编辑my.cnf里面的内容再重启容器)

复制代码
docker restart mysql

4、查看mysql容器内部的文件映射情况

进入文件夹/etc/mysql/conf.d,使用命令cat my.cnf即可

相关推荐
Decay__2 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Decay__8 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
无人生还别怕12 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
杨浦老苏13 小时前
把项目管理搬回自己服务器:Windshift部署与避坑
docker·项目管理·群晖
木雷坞14 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
fb_1234514 小时前
从探针到权限:一篇吃透 Kubernetes 健康检查、RBAC 认证授权与 Dashboard 可视化管理
云原生·容器·kubernetes
wefg115 小时前
【Docker】基本指令
运维·docker·容器
mengge.cloud15 小时前
10-28-Kubernetes健康检查认证授权与Dashboard
云原生·容器·kubernetes
后台模板学习15 小时前
MongoDB 与 MySQL 在 IM 即时聊天场景中该
数据库·mysql·mongodb
IT大白鼠16 小时前
渗透测试实战从靶场搭建到渗透流程——第 8 篇 · 服务型靶标(上):MySQL 双版本写文件链
数据库·mysql·渗透测试