CentOS系统使用Docker搭建mysql5.7数据库
- 在docker拉取mysql5.7镜像
内联代码片
。
:5.7指明版本号
docker pull mysql:5.7
- 在宿主机创建mysql映射的目录
内联代码片
。
创建目录
mkdir -p /data /data/docker /data/docker/mysql /data/docker/mysql/logs /data/docker/mysql/conf
在/data/docker/mysql/conf中创建 *.cnf 文件(叫什么都行)
touch /data/docker/mysql/conf/my.cnf
- 创建mysql容器
内联代码片
。
将docker容器的数据、日志、配置文件映射到宿主机
-d: 后台运行容器
-p 将容器的端口映射到本机的端口
-v 将主机目录挂载到容器的目录,冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径。
-e 设置参数
-e MYSQL_ROOT_PASSWORD:设置root用户密码
-v /data/docker/mysql:/var/lib/mysql 映射配置文件
\ 命令换行符号
docker run -p 3306:3306 --name mysql5.7 \
--restart always --privileged=true \
-v /data/docker/mysql/conf:/etc/mysql/my.conf.d \
-v /data/docker/mysql/logs:/logs \
-e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
- 启动mysql5.7容器
查看是否已启动
docker ps
如果docker ps下面没有启动,则启动
docker start mysql5.7
如果启动不了,则说明上一步出问题
- 允许数据库外网访问
内联代码片
。
进入容器
docker exec -it mysql5.7 /bin/bash
(1). 进入MySQL
mysql -uroot -p
(2). 授权
GRANT ALL ON *.* TO 'root'@'%';
(3). 刷新权限
flush privileges;
(4)exit退出mysql和容器
(5)打开防火墙端口
开发3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
刷新容器
firewall-cmd --reload
连接成功