Docker安装mysql

本文详细介绍了如何使用Docker拉取并运行MySQL镜像,包括查看镜像、设置端口映射、命名容器、设置环境变量、同步时区、配置MySQL参数、启动和登录MySQL、监控日志以及停止和删除Docker容器的步骤。
摘要由CSDN通过智能技术生成

 一、拉取镜像

# 拉取镜像
docker pull mysql
 
# 或者
docker pull mysql:latest
 
# 以上两个命令是一致的,默认拉取的就是 latest 版本的
 
# 我们还可以用下面的命令来查看可用版本:
docker search mysql

二、查看镜像

docker images

 

 三、运行镜像

  • mysql 8.0以上的配置
    docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
    -v /usr/local/mysql/log:/var/log/mysql \
    -v /usr/local/mysql/data:/var/lib/mysql \
    -v /usr/local/mysql/conf:/etc/mysql/conf.d \
    -v /etc/localtime:/etc/localtime:ro \
    -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

mysql 5.7的配置

docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /usr/local/mysql/log:/var/log/mysql \
-v /usr/local/mysql/data:/var/lib/mysql \
-v /usr/local/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

命令解释

 -p 3306:3306:指定宿主机端口与容器端口映射关系

--name mysql:创建的容器名称

--restart=always:总是跟随docker启动

--privileged=true:获取宿主机root权限
-v /usr/local/mysql/log:/var/log/mysql:映射日志目录,宿主机:容器
-v /usr/local/mysql/data:/var/lib/mysql:映射数据目录,宿主机:容器
-v /usr/local/mysql/conf:/etc/mysql:映射配置目录,宿主机:容器
-v /etc/localtime:/etc/localtime:ro:让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456

-d mysql:latest:后台运行mysql容器,版本是latest。

四、查看正在运行的容器

# 查看正在运行的容器
docker ps
# 查看所有的docker容器
docker ps -a

 如果有问题我们可以用该命令查看日志

docker logs -f mysql

五、修改mysql配置

创建mysql配置文件:my.cnf

cd /usr/local/mysql
 
ll
 
cd conf
 
vi my.cnf
 

在 my.cnf 文件中 写入如下内容:

[client]

default-character-set=utf8mb4

[mysql]

default-character-set=utf8mb4

[mysqld]

# 设置东八区时区
default-time_zone = '+8:00'

# 设置密码验证规则,default_authentication_plugin参数已被废弃

# 改为authentication_policy

#default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password

# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录;
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录;
# 为NULL,禁止导入与导出功能
#secure_file_priv=/var/lib/mysql
secure_file_priv=

init_connect='SET collation_connection = utf8mb4_0900_ai_ci'

init_connect='SET NAMES utf8mb4'

character-set-server=utf8mb4

collation-server=utf8mb4_0900_ai_ci

skip-character-set-client-handshake

skip-name-resolve

六、启动容器内部mysql

docker exec -it mysql /bin/bash
6.1登入mysql
mysql -u root -p

输入密码123456

6.2选择数据库
show databases;
use mysql;
 
6.3查看用户连接情况
select host, user, plugin,  authentication_string, password_expired from user;
 
6.4退出容器
exit
 

先输入exit退出mysql,再输入exit退出容器。

此时,我们通过客户端工具就可以连接mysql了。

七、停止正在运行的Docker容器及删除Docker容器

7.1停止正在运行中的docker进程
docker ps
[root@zgf ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
f74c23ab333e   mysql:latest   "docker-entrypoint.s…"   43 minutes ago   Up 43 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

 执行以下命令停止进程

docker kill f74c23ab333e

查看结果

docker ps

结果如下

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
7.2docker容器的删除

首先停止希望删除的容器(参考上述停止方法)

执行以下命令查看所有容器

docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                  NAMES
f74c23ab333e   mysql:latest   "docker-entrypoint.s…"   47 minutes ago   Up 47 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql

执行以下命令删除

docker rm f74c23ab333e

查看结果

docker ps -a

结果如下

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

删除成功

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值