1: 安装mysql5.7(若是想使用最新版本mysql,不加标签版本号即可)
docker pull mysql/mysql-server:5.7
2: 查看镜像文件
docker image ls

3: 启动mysql容器
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: 查看运行的容器
[root@JD ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES145ff38857ce 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容器启动日志
docker logs mysql1
6: 从日志中获取自动生成的密码
docker logs mysql1 2>&1 | grep GENERATED

7: 登录数据库进行mysql配置
#登录容器docker exec -it mysql1 mysql -uroot -p#修改root密码alter user 'root'@'localhost' identified by '!qaz2wsX';#添加远程mysql用户create user 'root'@'%' identified by '!qaz2wsX';#授权新建的用户grant all privileges on *.* to 'root'@'%';
8: 此时可以使用远程用户连接数据库。
远程无法访问时
启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 : systemctl enable firewalld注意:防火墙,若是云服务器,需要配置用户组。
运行实例:
#使用宿主机上的配置文件和宿主机上指定目录存储数据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#使用宿主机上指定目录存储数据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#mysql镜像搭建,直接指定mysql root密码docker run --name=custom-mysql -p 3306:3306 -p 33060:33060 \--restart always --privileged=true \-v /data/mysql/conf.d:/etc/mysql/conf.d \-v /data/mysql/conf:/etc/mysql \-v /data/mysql/data:/var/lib/mysql \-v /data/mysql/log:/var/log \-e MYSQL_ROOT_PASSWORD='!qaz2wsX' \-d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
