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
    评论
宝塔面板的MySQL数据库Docker中的MySQL数据库有以下区别: 1. 部署方式:宝塔面板是一个集成的服务器管理面板,它提供了一键安装和管理MySQL数据库的功能。你可以通过在宝塔面板中选择MySQL数据库,并进行相关配置来快速部署和管理数据库。而Docker是一个容器化平台,你可以使用Docker来创建和管理MySQL容器,通过定义Docker镜像、容器等配置来部署和管理MySQL数据库。 2. 环境隔离:Docker提供了容器化的环境隔离,每个MySQL容器都是独立运行的,具有自己的文件系统、网络等资源,可以避免不同应用之间的相互影响。而宝塔面板中的MySQL数据库是直接安装在服务器上的,与其他应用共享服务器的资源。 3. 灵活性和可移植性:使用Docker部署MySQL数据库可以提供更大的灵活性和可移植性。你可以在不同的环境中使用相同的Docker镜像来快速部署和迁移数据库,而无需关注底层操作系统和服务器配置的差异。而宝塔面板中的MySQL数据库通常是与特定服务器绑定的,迁移需要手动配置和迁移数据库文件。 4. 扩展性:使用Docker可以更容易地扩展MySQL数据库。你可以通过调整Docker容器的配置、添加新的容器等方式来实现负载均衡或高可用性。而宝塔面板中的MySQL数据库通常是以单实例形式运行,如果需要扩展,可能需要手动配置和管理多个实例。 需要注意的是,宝塔面板中的MySQL数据库Docker中的MySQL数据库并不是相互排斥的选择,而是根据具体需求和使用场景选择合适的部署方式。对于简单的应用场景,宝塔面板提供了方便的一键部署和管理;而对于复杂的、需要灵活性和可移植性的场景,使用Docker部署MySQL数据库可能更合适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值