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即可

相关推荐
JavaPub-rodert21 小时前
Go 后台如何同时兼容 MySQL、PostgreSQL、SQLite 和 SQL Server?从 ShiyuAdmin 看 GORM 多数据库适配
数据库·mysql·postgresql·golang·javapub·王仕宇
爱吃火鸡面呀1 天前
MySQL 查询与函数详解:从基础条件筛选到高级字符处理
数据库·mysql
知行产研1 天前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
艾伦_耶格宇1 天前
【DOCKER容器实战】-2MySQL
运维·docker·容器
爱和冰阔落1 天前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql
Dxy12393102161 天前
MySQL有哪些锁?InnoDB锁体系完整梳理博客
数据库·mysql
wear工程师1 天前
MySQL 索引条件下推是什么?Using index condition 并不是覆盖索引
sql·mysql
禅口魔心1 天前
RK3576开发——Docker部署
docker·嵌入式linux
方便面不加香菜1 天前
MySQL 复合查询
数据库·mysql
随便做点啥1 天前
32卡×4090 24GB,Qwen3.8-27B-FP8 集群部署报告
服务器·经验分享·docker·vllm