centos7 docker 安装mysql,及其配置文件映射

参考文献:

https://blog.csdn.net/Ber_Bai/article/details/116572207

https://www.cnblogs.com/wjw1014/p/12149399.html

https://blog.csdn.net/weixin_43956484/article/details/116499061

  1. 查找mysql镜像

docker search mysql
  1. 下载mysql镜像(:5.7 表示5.7版本)

docker pull mysql:5.7

上图是已经拉取过 拉取第二次的结果。

  1. 宿主机和容器的配置文件设置。

方式一:

先第一次启动

docker run -d \
-p 3306:3306 \
--name mysql \
-e MYSQL_ROOT_PASSWORD=123  \
mysql:5.7

docker exec -it mysql bash

mysql -uroot -p
# Enter password:

# mysql> show variables like '%datadir%';
show variables like '%datadir%';

show variables like '%datadir%';会输出数据文件的存放路径 /var/lib/mysql/

拷贝容器配置文件

docker cp mysql:/etc/mysql /usr/local/mysql/conf

mysql容器的配置文件存在 /etc/mysql 下

docker stop mysql
docker rm mysql

方式二:手动配置容器MySQL数据、配置、日志挂载宿主机目录

# 宿主机创建数据存放目录映射到容器
mkdir -p /usr/local/docker_data/mysql/data

# 宿主机创建配置文件目录映射到容器 
mkdir -p /usr/local/docker_data/mysql/conf #(需要在此目录下创建"conf.d"、"mysql.conf.d"两个目录)
mkdir -p /usr/local/docker_data/mysql/conf/conf.d # (建议在此目录创建my.cnf文件并进行相关MySQL配置)
mkdir -p /usr/local/docker_data/mysql/conf/mysql.conf.d

# 宿主机创建日志目录映射到容器
mkdir -p /usr/local/docker_data/mysql/logs

  1. 重新启动容器

docker run \
-d \
--privileged=true \
-p 3306:3306 \
--name mysql \
-v /usr/local/docker/mysql/conf/mysql:/etc/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql/ \
-v /usr/local/docker/mysql/logs:/var/log/mysql/ \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always  \
mysql:5.7 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

注解:

docker run

run 是运行一个容器

-d \

表示后台运行

--privileged=true \

设值MySQL 的root用户权限, 否则外部不能使用root用户登陆

-p 3306:3306 \

端口映射(宿主机端口:容器端口)

--name mysql \

容器名称

-v /usr/local/docker/mysql/conf/mysql:/etc/mysql \

容器MySQL配置目录映射(宿主机:容器)

-v /usr/local/docker/mysql/data:/var/lib/mysql/ \

容器MySQL数据目录映射(宿主机:容器)

-v /usr/local/docker/mysql/logs:/var/log/mysql/ \

容器MySQL日志目录映射(宿主机:容器)

-e MYSQL_ROOT_PASSWORD=123456 \

容器的环境变量(root账号初始化密码)

--restart always \

表示docker启动,nysql也会启动。

mysql:5.7 \

指定docker镜像 (可以是镜像名称或者镜像ID)

--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

设值数据库默认编码

run run 是运行一个容器
-d  表示后台运行
-p  表示容器内部端口和服务器端口映射关联
--privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
-v /usr/local/docker/mysql/conf/mysql:/etc/mysql 将服务器中的配置映射到docker中的/docker/mysql配置
-v /usr/local/docker/mysql/data:/var/lib/mysql/ /  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
-e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
--name mysql     设值容器名称为mysql
--restart always  表示docker启动,nysql也会启动。
mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码
  1. 数据库登录验证:

  1. 创建账户

docker exec -it mysql5.7 bash
mysql -u root -p
# 创建用户并开启远程登录
CREATE USER '你的账号'@'%'  IDENTIFIED BY '你的密码';
# 创建数据库并设置字符集
CREATE DATABASE `库名` CHARACTER SET 'utf8mb4';
# 给账号授权数据库
GRANT ALL PRIVILEGES ON 库名.* TO '你的账号'@'%';
  1. docker 常用命令

# 删除容器(参数可以是容器名称或容器ID)
docker rm mysql5.7
# 删除镜像
docker rmi mysql5.7
# 启动容器
docker start mysql5.7
# 启动容器/重启容器
docker restart mysql5.7
# 停止容器
docker stop mysql5.7
# 进入容器
docker exec -it mysql5.7 bash

点击查看MySQL my.cnf配置介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值