Docker部署MySQL8并使用Navicat建立连接(原创 超详细 可行)

先说一下环境,Centos7中安装了Docker,Docker版本20.10.9,在Docker中部署MySQL8.0.26

Centos关闭防火墙,或放行相关端口

关闭防火墙systemctl stop firewalld
禁止开机启动防火墙systemctl disable firewalld

重点是navicat在远程连接mysql的时候,会报2003和1251的错。

第一步:从Docker Hub拉取官方mysql镜像

访问DockerHub 官网,搜索mysql

 点第一个搜索到的mysql

 为了防止mysql版本有变动,我们不下载latest,而下载一个固定的版本,现在最新版本是8.0.26,我们就使用这个,复制命令 ,到centos中去执行。

docker pull mysql:8.0.26

稍等一会就会下载完成

第二步:创建一个新的mysql容器并运行

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.26

 这时候mysql已经跑起来了

我们使用navicat去测试连接

 navicat会报1251的错,出现这个问题的原因是MySQL8.0版本的加密方式和MySQL5.0的不一样,所以使用Navicat连接MySQL会报错。

解决办法:

我们进入容器内部,

docker exec -it mysql bash

打开mysql数据库,输入密码 root (在输密码root的时候不显示)

mysql -uroot -p

更改加密方式,输入命令

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

注意这个%,%表示让所有的ip都可以访问,mysql默认是只有localhost才能访问,我们这里顺手修改了让所有ip都能够访问,如果不修改,当navicat远程连接mysql的时候,会报2003的错误。当然,如果navicat和mysql在一台电脑上,你也可以把%替换为localhost:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更改密码,输入命令

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

最后一步,刷新,注意有分号;

FLUSH PRIVILEGES;

这时候我们去navicat测试连接,就可以连接上了。

  • 13
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 很高兴回答您的问题。要部署MySQL 8.0,您可以使用Docker容器。首先,您需要在服务器上安装Docker,然后您可以通过运行以下命令来安装MySQL 8.0:docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql:8.0. ### 回答2: 要使用Docker部署MySQL 8.0,可以按照以下步骤操作: 1. 首先,确保你的系统中已经安装了Docker。可以在终端中运行docker --version命令来检查Docker是否已经安装。 2. 在Docker Hub上搜索MySQL 8.0的官方镜像。可以在终端中运行docker search mysql来查找可用的镜像。找到合适的官方MySQL 8.0镜像。 3. 下载MySQL 8.0的镜像。使用docker pull命令下载镜像,例如:docker pull mysql:8.0。 4. 创建一个MySQL容器。可以使用docker run命令来创建容器,同时指定容器的名称、端口映射和其他需要的配置。例如,运行以下命令来创建一个名为mysql-container的容器: docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password -d mysql:8.0 这将创建一个名为mysql-container的容器,并将主机的3306端口映射到容器的3306端口。-e选项用于设置MySQL的root用户密码。 5. 连接MySQL容器。使用MySQL客户端工具,如mysql命令行工具,来连接MySQL容器。运行以下命令连接mysql-container容器: mysql -h localhost -P 3306 -u root -p 输入之前设置的密码,即可连接MySQL容器。 6. 现在你可以在MySQL容器中执行常规的MySQL操作,比如创建数据库、创建表、插入数据等。 使用Docker部署MySQL 8.0可以方便地创建一个独立的、可移植的MySQL环境,使得开发和部署更为简单和灵活。此外,Docker还提供了容器的管理和部署等功能,使得MySQL容器的管理更为方便。 ### 回答3: 要使用Docker部署MySQL 8.0,我们需要按照以下步骤进行操作: 1. 安装Docker:首先,我们需要在目标机器上安装Docker引擎。可以根据操作系统的不同,选择适合的安装方法。安装完成后,可以通过运行`docker version`命令来验证安装是否成功。 2. 拉取MySQL 8.0镜像:我们需要从Docker镜像仓库中拉取MySQL 8.0的镜像。运行以下命令来执行拉取操作: ``` docker pull mysql:8.0 ``` 3. 创建容器:接下来,我们需要创建MySQLDocker容器。可以使用以下命令创建容器并设置相关参数: ``` docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=<root密码> -p <主机端口>:3306 -d mysql:8.0 ``` 其中,`my-mysql`是容器的名称,`<root密码>`是root用户的密码,`<主机端口>`是将主机上的端口映射到MySQL容器的3306端口。 4. 连接MySQL:稍等片刻后,容器将启动并运行MySQL服务。我们可以使用MySQL客户端工具来连接MySQL服务器。运行以下命令来连接MySQL 8.0服务器: ``` mysql -h <主机名> -P <主机端口> -u root -p ``` 其中,`<主机名>`是主机的名称或IP地址,`<主机端口>`是上一步中映射的端口。 5. 配置MySQL连接MySQL服务器后,我们可以执行任何MySQL命令来配置和管理数据库。例如,我们可以创建新的数据库、用户、表等。 以上就是使用Docker部署MySQL 8.0的步骤。通过使用Docker,我们可以轻松地在不同的环境中部署和管理MySQL数据库,并保持环境的一致性和可重现性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李硕硕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值