docker安装mysql5.7

1、宿主机创建映射目录

bash 复制代码
mkdir -p /data/mysql/log
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf

这里我放在了/data/mysql目录下

2、拉取mysql镜像

bash 复制代码
docker pull mysql:5.7

注意是5.7版本,如果是8版本操作会略有不同,下篇文章介绍安装8版本的操作。

查看镜像

bash 复制代码
docker images

3、创建运行实例

bash 复制代码
docker run -p 13306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD='123456' \
-d mysql:5.7

参数说明:

  • -p 13306:3306 将容器的3306端口映射到主机的13306端口
  • -v /mysql/mysql/conf:/etc/mysql 将配置文件夹挂载到主机
  • -v /mysql/mysql/log:/var/log/mysql 将日志文件夹挂载到主机
  • -v /mysql/mysql/data:/var/lib/mysql 将数据文件夹挂载到主机
  • -e MYSQL_ROOT_PASSWORD=123456 初始化root用户的密码

4、查看运行容器

复制代码
docker ps

5、添加/修改配置文件

bash 复制代码
vim /data/mysql/conf/my.cnf

配置文件示例如下:

bash 复制代码
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collection_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连接慢的问题

在配置文件中加入如下,并重启mysql

mysqld

skip-name-resolve

解释:

skip-name-resolve:跳过域名解析

设置自动启动

bash 复制代码
docker update mysql --restart=always

重启mysql容器

bash 复制代码
docker restart mysql

查看日志

bash 复制代码
docker logs -f --tail 1000 mysql

6、其他问题

如果启动容器后执行docker ps未发现容器,可执行docker logs -f --tail 1000 mysql查看日志,如上问题时,先去掉配置文件的映射启动容器

bash 复制代码
docker run -p 33060:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD='123456' \
-d mysql:5.7

容器启动正常后将容器的配置文件复制到主机对应目录

bash 复制代码
docker cp mysql:/etc/my.cnf /data/mysql/conf/my.cnf

再删除掉容器

bash 复制代码
# 注意这里是强制删除
docker rm --force mysql
# 下面是正常删除流程,先停止再删除
docker stop mysql
docker rm mysql

最后再重新启动mysql容器

bash 复制代码
docker run -p 33060:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf/my.cnf:/etc/my.cnf \
--privileged=true \
-e MYSQL_ROOT_PASSWORD='123456' \
-d mysql:5.7
相关推荐
java_logo2 小时前
Docker 部署 NetBox:轻松搭建 IPAM / DCIM 网络资产管理平台
docker·容器·轩辕镜像·netbox部署·netbox部署方案·netbox部署文档·docker部署netbox
码农阿豪3 小时前
【金仓数据库征文】Mac开发环境|SpringBoot3 + MyBatisPlus对接KES V9 Docker实战全指南
数据库·macos·docker
杨云龙UP3 小时前
MySQL 数据库常用备份工具对比:mysqldump、mydumper 与 XtraBackup
linux·运维·服务器·数据库·mysql·dba·备份恢复
PC2005-cloud3 小时前
从零上手 openGauss:Docker 部署 + 全场景连接教程
运维·docker·容器
风曦Kisaki4 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
_艾伦 耶格尔.4 小时前
基础I/O
linux
心灵Haven6 小时前
Centos7 + Mysql8.0
mysql·centos
AlfredZhao6 小时前
Docker 查看容器日志:别只记 `docker logs -f`
docker
fb_123457 小时前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
深念Y8 小时前
随身WiFi设备记录
linux·嵌入式·无线·射频·随身wifi·zte