1.创建本地文件,用于映射容器内文件:
mkdir -p /opt/docker/mysql/log
mkdir -p /opt/docker/mysql/data
mkdir -p /opt/docker/mysql/conf
2.创建my.cnf配置文件:
vi /opt/docker/mysql/conf/my.cnf
文件内容:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
3.拉取mysql 5.7镜像:
docker pull mysql:5.7
4.docker启动:
docker run -d -p 3306:3306 --name mysql57 \
-v /opt/docker/mysql/log:/var/log/mysql \
-v /opt/docker/mysql/data:/var/lib/mysql \
-v /opt/docker/mysql/conf:/etc/mysql/conf.d \
--restart=always \
-e MYSQL_ROOT_PASSWORD=a123456 \
-d mysql:5.7
5.远程连接:
6.讲解:
我们使用docker安装mysql时,为了数据持久化及配置文件修改方便,需要把容器内文件挂载到外面,所以我们使用 -v命令指定挂载地址,并提前创建文件夹和my.cnf文件。
为了每次开虚拟机不用再启动容器,我们指定 --restart=always
密码手动指定,要不需要去容器里找mysql启动日志。
7.其他:
docker pull mysql:5.7的时候有时候因为网络问题不一定一次成功,如果没有成功多试两次
如果容器启动完成后,无法连接mysql,注意看一下容器状态,然后看容器日志。命令如下:
> docker ps
如果状态是一直重启,或者其他,说明启动有问题。用如下命令看日志,然后分析问题解决
> docker logs