docker搭建mysql:5.7.29

拉取对应版本镜像

docker pull mysql:5.7.29

mysql:5.7.29容器中目录结构

|-- conf.d
|   |-- docker.cnf
|   |-- mysql.cnf
|   |-- mysqldump.cnf
|-- my.cnf -> /etc/alternatives/my.cnf
|-- my.cnf.fallback
|-- mysql.cnf
|-- mysql.conf.d
    |-- mysqld.cnf
注意:不要映射: /etc/mysql/my.cnf,该文件是个软连。即使映射成功配置文件是不会生效的。

编写脚本

├─mysql5.7
│      ├─conf
│      │  └─mysql.conf.d
│      │          mysqld.cnf
│      └─scripts
│              run.sh

文件:mysqld.cnf

[mysql]
default-character-set=utf8

[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/

pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock

#log-error    = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address    = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

server-id=1

文件:run.sh

#!/usr/bin/env bash

# 脚本当前目录
scrpts_path=$(cd $(dirname "$0") || exit; pwd)

# MySQL根目录
dirpath=$(dirname "$scrpts_path")

# 创建MySQL数据存储目录
mkdir -p "$dirpath"/data

# 启动MySQL服务
docker rm mysql -f
docker run -d -p 3306:3306 --name mysql \
-v="$dirpath"/conf/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v="$dirpath"/data:/usr/local/mysql/data/ \
-e MYSQL_ROOT_PASSWORD=123 \
mysql:5.7.29

说明

  • 修改容器中的配置文件
  • 修改mysql数据目录
  • 设置mysql初始密码

启动MySQL服务

sh scripts/run.sh

执行:docker ps 查看服务是否启动成功

注意:data 目录不要随便删除

注意:该镜像自动创建远程账号:root 密码就是初始密码

docker搭建mysql:5.7.29_第1张图片

进入MySQL服务容器内

docker exec -it mysql bash

连接MySQL

mysql -uroot -p

# 初始密码:123

修改密码

按需操作

# 修改本地连接账号-置空
alter user 'root'@'localhost' identified by '';

# 修改远程账号密码-置空
alter user 'root'@'%' identified by '';
注意:此时连接mysql服务器root密码不再是初始密码,而是刚才设定的密码

---------------至此部署完毕---------------

你可能感兴趣的:(mysql,docker)