本文最后更新于2022-06-29,已超过 1年没有更新,如果文章内容、图片或者下载资源失效,请留言反馈,我会及时处理,谢谢!
温馨提示:本文共1749个字,读完预计5分钟。
前言:docker部署mysql的关键在于两点
1.mysql在生产环境产生的数据放在容器里很不安全,我们需要把数据文件夹挂载到容器外,以防数据丢失。
2.运行mysql镜像时需要设置初始密码,并且设置mysql可以远程连接。
1.mysql在生产环境产生的数据放在容器里很不安全,我们需要把数据文件夹挂载到容器外,以防数据丢失。
2.运行mysql镜像时需要设置初始密码,并且设置mysql可以远程连接。
1.安装Docker
yum -y install docker-io
#当前启动
systemctl start docker
#自启动
systemctl enable docker
2.安装并启动MySQL:5.7
# 1.找镜像
docker search mysql
# 2.拉镜像
docker pull mysql:5.7
# 3.建镜像
# -p 端口映射 本机端口:容器端口
# --name:给MySQL容器取的名字
# -d:表示后台运行
# -e MYSQL_ROOT_PASSWORD:设置root用户密码
# -v:表示挂载路径,冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径。
docker run -p 3306:3306 --name mysql
-v /usr/local/docker/mysql/conf:/etc/mysql
-v /usr/local/docker/mysql/logs:/var/log/mysql
-v /usr/local/docker/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=123456
-d mysql:5.7
OTHER:
docker run -itd --name=mysql -p 3306:3306 -v /www/docker/course/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=mmr702351mysql -d mysql
-i 表示交互模式运行容器
-t 为容器分配一个伪输入终端
-d 表示后台运行容器 并返回容器Id
ps:不指定版本号拉取最新
3.配置网路访问权限
1.root外网连接权限配置
# 进入mysql容器
docker exec -it mysql bash
# -u后接账户 -p接密码
mysql -uroot -p123456
# 外网范围授权(不适用mysql8)
grant all privileges on *.* to root@'%' identified by "password";
# 刷新权限
flush privileges;
# 一定要更新密码,否则Navicat连接报1045错误 (mysql8 此句即可)
alter user 'root'@'%' identified with mysql_native_password by '123456';
# 刷新权限
flush privileges;
2.3306端口开发
# 1.放行3306端口
systemctl start firewalld
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 添加放行端口
firewall-cmd --reload # 成功后再重载防火墙
systemctl restart firewalld.service # 再重启下防火墙服务
# 2.直接关防火墙法(1或2选一种就行)
systemctl stop firewalld
4.云服务器配置安全组
5.navivat连接成功