【Docker入门】Navicat连接docker下的Mysql数据库服务步骤

【Docker入门】Navicat连接docker下的Mysql数据库服务步骤

Docker常用词

几个从前不太清楚的概念:

  • Docker可以认为是vmware或者virtualbox
  • 镜像可以认为是 xxx.iso
  • 容器可以认为是 virtualbox运行xxx.iso后的系统

连接步骤

1、拉取mysql镜像

docker pull mysql:5.7

2、创建/运行 mysql 容器

docker run -p 3306:3306 --name docmysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
  • -p, --publish=[], 指定容器暴露的端口
  • -name="", 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
  • -e, --env=[], 指定环境变量,容器中可以使用该环境变量
  • -d, --detach=false, 指定容器运行于前台还是后台,默认为false

这个部分可以采用“数据持久化”的方式,代码可直接通过目录查看第二部分获得

3、获取 mysql 容器ID
复制红框框内的内容,每个人不同时间的都不同

docker  ps
属性说明
CONTAINER ID容器ID
IMAGE镜像名
PORT端口
NAMES容器名

4、进入运行成功的mysql容器(根据容器ID)

docker exec -it 9f5c017a16bb /bin/bash

5、进入MySql服务器 密码为:123456

mysql -uroot -p

输入密码打数字看不见不要慌,你就想密码这么私密能让你随便看么,输入后直接回车就可以
在这里插入图片描述
6、使用Window系统下的Navicat Premium 连接Docker里的MySql服务

  • 主机填docker的ip地址
  • 端口填创建容器时-p后的第一个端口
  • 密码填-e后写的密码

在这里插入图片描述
然后点连接就妥了,有问题大家评论区多多交流,互相学习

数据持久化

正常使用docker启动mysql容器,当关闭容器时,容器中的数据会消失,所以要将mysql容器中的数据持久化到主机上

持久化数据启动mysql容器命令如下:

docker run -p 3306:3306 --name docmysql -v /usr/local/mysql/conf:/etc/mysql/conf.d  -v/usr/local/mysql/logs:/logs  -v /usr/local/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
命令说明
-p 3306:3306将主机的3306端口映射到Docker容器的3306端口
–name mysql指定运行的服务的名字为mysql
-v /usr/local/mysql/data:/var/lib/mysql将主机/usr/local/mysql/data目录挂载到容器指定目录
-e MYSQL_ROOT_PASSWORD=123456初始化root用户密码为123456
-d后台运行开启的服务
mysql:5.6指定运行的服务和版本

在命令指示符里写数据库

   命令指示符  win+r 输入cmd 回车   

不是吧!这年头不会还有人不知道命令指示符是啥吧,下次问再不会就去跪榴莲吧! docker的使用就要在命令指示符上(包括以上操作)

1、创建数据库foodapp
在这里插入图片描述
2、进入foodapp数据库,创建一个user表,有id,name字段
在这里插入图片描述
3、执行插入和查询语句
在这里插入图片描述

报错2059的解决方案

在一次安装完镜像并成功启动Mysql容器,用Navicat连接报错如下:
在这里插入图片描述

 报错原因:在拉取镜像的时候,拉取的是默认版本,然后去官网docker hub查看默认版本的      具体版本号,发现latest版本更新到了8.0版本.而Mysql从8.0版本开始,使用的加密规则是 caching_sha2_password,之前的加密规则为mysql_native_password,而Navicat找不到最新的身份验证插件,所以才会出现以上报错 

在这里插入图片描述

解决办法:修改加密规则为之前的mysql_native_password

  • 按照上面的步骤进入Mysql容器,进入之后输入命令(进行远程连接授权)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
  • 刷新权限
FLUSH PRIVILEGES;
  • 更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  • 重置root用户密码,更改密码为password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  • 刷新权限
FLUSH PRIVILEGES;

重新使用Navicat连接,连接成功!

本文部分引用来源于https://blog.csdn.net/qq_40389276/article/details/98871405
加上了一些作为小白的理解,希望能给同是码农小白的朋友一定帮助

### 回答1: 要使用 Navicat 连接 Docker MySQL 数据库,需要执行以下步骤: 1. 确保已经安装了 DockerNavicat 应用程序。 2. 在 Docker 启动 MySQL 容器,可以使用以下命令: ``` docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag ``` 其,`some-mysql` 是容器的名称,`my-secret-pw` 是 MySQL 的 root 用户的密码,`tag` 是所使用的 MySQL 镜像的版本号。 3. 获取 MySQL 容器的 IP 地址,可以使用以下命令: ``` docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' some-mysql ``` 其,`some-mysql` 是 MySQL 容器的名称。 4. 在 Navicat 创建新的数据库连接,选择 MySQL 数据库类型,并填写以下信息: - Host:步骤 3 获取到的 MySQL 容器的 IP 地址。 - Port:3306(默认的 MySQL 端口号)。 - User Name:root。 - Password:步骤 2 设置的 MySQL root 用户的密码。 - Database:要连接MySQL 数据库的名称。 完成上述步骤后,就可以使用 Navicat 连接 Docker MySQL 数据库了。 ### 回答2: Navicat是一款很常用的数据库管理工具,能够方便地管理数据库和进行数据库开发工作。而Docker则是一种容器化技术,它可以将应用程序打包为容器,从而方便地进行部署和管理。如果想要使用Navicat管理在Docker运行的MySQL数据库,需要进行一定的设置和配置。 首先,需要在Docker启动MySQL容器。可以使用以下命令: docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest 这条命令会在Docker运行一个名为mysql容器,并且设置root用户的密码为123456,使用最新版本的MySQL镜像。 然后,在Navicat连接MySQL数据库时,需要填写一些参数。在连接MySQL服务器的对话框,需要填写服务器主机名或IP地址,端口号,默认的数据库名称和登录凭据。这些参数的设置如下: 主机名或IP地址:可以使用Docker容器的IP地址。可以使用以下命令查询容器的IP地址: docker inspect -f '{{.NetworkSettings.IPAddress}}' mysql 端口号:在Docker容器启动MySQL时,可以将MySQL的默认端口映射到主机的端口。可以使用以下命令将容器内的3306端口映射到主机的3306端口: docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest 默认的数据库名称:如果在容器没有创建数据库,则需要手动创建。可以使用以下命令创建一个名为test的数据库docker exec -it mysql mysql -uroot -p123456 -e "create database test;" 登录凭据:需要输入root用户的用户名和密码,这里的用户名为root,密码为使用-e参数设置的123456。 最后,点击“测试连接”按钮进行连接测试。如果连接成功,则可以在NavicatMySQL数据库进行管理和操作。 ### 回答3: Navicat是一种常用的数据库管理工具,可以用于连接各种类型的数据库,包括运行在Docker容器MySQL数据库。本文将介绍如何使用Navicat连接DockerMySQLDocker运行MySQL 首先,我们需要在Docker上启动MySQL。我们可以使用docker run命令在容器运行MySQL。以下是运行命令的示例: docker run --name=mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:latest 这个命令会在容器运行MySQL,并将容器的3306端口映射到本地机器的3306端口。我们也可以为MySQL指定root密码。 连接MySQL 接下来,我们使用Navicat连接MySQL。在Navicat界面上,我们需要选择MySQL作为我们要连接数据库类型,并填写连接信息。 填写连接信息: 1.在连接输入任意名称。 2.选择MySQL作为数据库类型。 3.在主机名或IP地址输入本机IP地址或者远程服务器IP地址。 4.将端口号设置为3306。 5.输入用户名和密码及选择连接数据库。 最后,点击连接按钮,Navicat即可连接MySQL并开始管理您的数据库。 总结 在本文,我们介绍了如何使用Navicat连接Docker容器运行的MySQL数据库。通过Navicat,我们可以轻松管理MySQL数据库,包括增删改查和备份还原等功能。在使用Navicat之前,我们需要确保MySQL已经在Docker容器成功运行。为了更好的安全性,我们还可以设置MySQL账户和密码,避免非法访问造成的损失。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值