docker 安装mysql5.7+ 设置容器卷 + 修改初始密码

文章目录

    • 1.拉取mysql镜像
    • 2.创建用于挂载的目录
    • 3.使用镜像创建容器
    • 4.进入容器
    • 5.表名区分大小写
    • 6.修改密码
      • 6.1最后一行添加如下内容 增加“忘记密码启动”模式:skip-grant-tables
      • 6.2重启mysq5.7
      • 6.3进入容器 密码处直接回车即可
      • 6.4修改密码:
      • 6.5docker 重启mysql
      • 6.6删除第6步的skip-grant-tables
      • 6.7 docker 重启mysql

安装教程:

1.拉取mysql镜像

docker pull mysql:5.7

2.创建用于挂载的目录

mkdir -p /docker/mysql/logs /docker/mysql/conf /docker/mysql/data

3.使用镜像创建容器

将容器中MySQL的3306端口映射到本地的3307端口,并设置登录密码为:123456

docker run -d \
--name mysql5.7  \
-p 3306:3306  \
-v /docker/mysql/data:/var/lib/mysql  \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-v /docker/mysql/logs:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456  \
--restart=always \
 mysql:5.7 

命令解析
–name:容器名
–p:映射宿主主机端口
-v:挂载宿主目录到容器目录
-e:设置环境变量,此处指定root密码
-d:后台运行容器

4.进入容器

docker start 容器ID

docker exec -it 容器名字 /bin/bash

[root@dc01 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96a49c6e7235 mysql:5.7 "docker-entrypoint.s…" 4 weeks ago Up 2 minutes 0.0.0.0:3306->3306/tcp mysql5.7
fa56f865bd26 nginx:latest "nginx -g 'daemon of…" 4 weeks ago Up 16 minutes 0.0.0.0:80->80/tcp vigilant_swirles

[root@dc01 ~]# docker exec -it 96a49c6e7235 /bin/bash
root@96a49c6e7235:/# mysql -uroot -p123456

首先按照上面安装完成否则目录无效

5.表名区分大小写

在宿主机上该目录下:/data/mysql/conf创建一个mysql.cnf
/data/mysql/conf/mysql.cnf添加如下内容

[mysqld]
lower_case_table_names=1

重启mysql

6.修改密码

在宿主机上该目录下:/data/mysql/conf创建一个mysql.cnf
/data/mysql/conf/mysql.cnf

6.1最后一行添加如下内容 增加“忘记密码启动”模式:skip-grant-tables

[mysqld]
lower_case_table_names=1
skip-grant-tables

6.2重启mysq5.7

docker restart mysql5.7

6.3进入容器 密码处直接回车即可

[root@localhost ~]# docker exec -it 03a /bin/bash
root@03a440ccb869:/# mysql -u root -p
Enter password:

6.4修改密码:

txmail换成你的密码

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'txmail';
Query OK, 0 rows affected (0.00 sec)

6.5docker 重启mysql

6.6删除第6步的skip-grant-tables

6.7 docker 重启mysql


完成

你可能感兴趣的