docker部署mysql数据库

前言

本篇文章介绍使用docker完成mysql部署,使用Navicat连接

1.mysql部署

1.首先拉取镜像,我这里拉取的是5.7版本的镜像,不填版本号默认是latest,最新版的;

docker pull mysql:5.7

2.查看拉取下来的镜像,我这里可以看到是拉取下来了的;

docker images

在这里插入图片描述
3.使用docker命令行启动容器;

docker run --name mysql -d -p 3306:3306 -v /var/lib/mysql:/data/mysql/data -v /etc/mysql/conf.d:/data/mysql/conf/conf.d -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7

这里做一下解释:

--name 是启动的容器名
-d 后台运行(不使用后台运行的话,xshell退出后服务就会停止)
-v 挂载文件路径 -v 容器文件路径:宿主机文件路径
-p 端口映射 -p 容器内端口:宿主机端口
-e 容器内配置,配置root账号密码为1234
最后面的mysql:5.7就是镜像名,同样,不加版本号的话会默认加一个:latest

mysql启动容器内的默认路径为 /var/lib/mysql 和 /etc/mysql/conf.d 这里也可以不做挂载,看个人习惯。

2.Navicat连接

正常来讲mysql部署完成,但是有些小伙伴会发现Navicat连接不上去,这里分享我初次部署遇到的几种情况(因为这次不是初次部署,所以相关报错图片这里不提供了,各位小伙伴自己判断排查)

①权限未分配

如果权限未分配的话,可能导致Navicat连接不上数据库或者连接上数据库,但是没法做其他操作,例如建库建表等。
这里打开我们的xshell,连接服务器进行配置:
a.首先查看运行中的容器,容器是否正常,端口是否正确映射等

docker ps

在这里插入图片描述

b.进入mysql容器,进行mysql配置

docker exec -it mysql bash
// 注意这里的mysql是指自己的mysql容器名称,不是固定的写mysql
// 进入容器后可以再次使用docker命令,例如docker ps来查看是否进入容器
// 进入容器后docker命令就用不了了,会提示错误
// 但是使用这个命令,有些小伙伴也进不去容器,这里可以试试下面这个(虽然我感觉都一样)
// docker exec -it mysql /bin/bash

在这里插入图片描述

c.进入数据库,修改配置
进入数据库:

mysql -uroot -p1234

下面的sql语句小伙伴们自己看着来,如果出现我这种情况的话就得加分号,隔行加。
在这里插入图片描述

-- 切换数据库
use mysql
-- 赋予权限
update user set host='%' where user='root'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'

执行完成后,退出mysql,退出容器

// 退出mysql和退出容器都是这个命令
exit

再次使用Navicat连接试试,如果还不行重启一下docker容器,再试试,还是不行再接着往下看。

②服务器问题

如果你是云服务器,登上你的控制台,检查你的服务器对应的端口暴露没,做安全规则配置,我这里使用的华为云,所以用华为云演示(其他平台类似)。
a. 进入你的控制台,找到你的服务器;
在这里插入图片描述b. 找到安全组,配置安全组入规则;
在这里插入图片描述
c. 配置入规则;

在这里插入图片描述优先级填1,协议端口就填需要对外暴露的端口,描述根据自己端口作用填,也可以不填,点击确定,最后再试试Navicat是否可以连接。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值