1: 安装mysql5.7(若是想使用最新版本mysql,不加标签版本号即可)

    1. docker pull mysql/mysql-server:5.7

    2: 查看镜像文件

    1. docker image ls

    clipboard.png

    3: 启动mysql容器

    1. docker run --name=mysql1 -p 3306:3306 -p 33060:33060 --restart always --privileged=true -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -d mysql/mysql-server5.7

    4: 查看运行的容器

    1. [root@JD ~]# docker ps
    2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    3. 145ff38857ce mysql/mysql-server:5.7 "/entrypoint.sh my..." 10 seconds ago Up 9 seconds (health: starting) 0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp mysql1

    5: 查看mysql容器启动日志

    1. docker logs mysql1

    6: 从日志中获取自动生成的密码

    1. docker logs mysql1 2>&1 | grep GENERATED

    clipboard.png

    7: 登录数据库进行mysql配置

    1. #登录容器
    2. docker exec -it mysql1 mysql -uroot -p
    3. #修改root密码
    4. alter user 'root'@'localhost' identified by '!qaz2wsX';
    5. #添加远程mysql用户
    6. create user 'root'@'%' identified by '!qaz2wsX';
    7. #授权新建的用户
    8. grant all privileges on *.* to 'root'@'%';

    8: 此时可以使用远程用户连接数据库。

    远程无法访问时

    1. 启动: systemctl start firewalld
    2. 关闭: systemctl stop firewalld
    3. 查看状态: systemctl status firewalld
    4. 开机禁用 systemctl disable firewalld
    5. 开机启用 systemctl enable firewalld
    6. 注意:防火墙,若是云服务器,需要配置用户组。

    运行实例:

    1. #使用宿主机上的配置文件和宿主机上指定目录存储数据
    2. docker run --name=mysql1 -p 3306:3306 -p 33060:33060 --restart always --privileged=true -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -d mysql/mysql-server:5.7
    3. #使用宿主机上指定目录存储数据
    4. docker run --name=mysql -p 3306:3306 -p 33060:33060 --restart always --privileged=true -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='!qaz2wsX' -d mysql/mysql-server
    5. #mysql镜像搭建,直接指定mysql root密码
    6. docker run --name=custom-mysql -p 3306:3306 -p 33060:33060 \
    7. --restart always --privileged=true \
    8. -v /data/mysql/conf.d:/etc/mysql/conf.d \
    9. -v /data/mysql/conf:/etc/mysql \
    10. -v /data/mysql/data:/var/lib/mysql \
    11. -v /data/mysql/log:/var/log \
    12. -e MYSQL_ROOT_PASSWORD='!qaz2wsX' \
    13. -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci