Docker安装MySQL并使用Navicat连接的使用示例

 更新时间:2023年10月09日 09:55:38   作者:mortalོ    
在Docker里运行MySQL的方式还是很方便的,本文主要介绍了Docker安装MySQL并使用Navicat连接的使用示例,具有一定的参考价值,感兴趣的可以了解一下

1. 拉取 MySQL 镜像

在没有拉取 MySQL 镜像之前的镜像列表:

  • 可以通过下面的命令拉取 MySQL 镜像:
docker pull mysql

这将下载最新版本的 MySQL 镜像到虚拟机中。

2. 创建并运行一个 MySQL 容器

docker run --name=mysql-test -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root123456 -d mysql

参数说明:

  • –name:指定了容器的名称,方便之后进入容器的命令行。
  • -itd:其中,i 是交互式操作,t 是一个终端,d 指的是在后台运行。
  • -p:指在本地生成一个随机端口,用来映射 mysql 的 3306 端口。
  • -e:设置环境变量。
  • MYSQL_ROOT_PASSWORD=root123456:指定了 MySQL 的 root 密码。
  • -d mysql:指运行 mysql 镜像,设置容器在在后台一直运行。

运行截图:

【补充知识】:

在 Docker 中,使用 -e 参数可以设置环境变量。环境变量是影响容器运行时行为的一些配置值。这些值可以在容器内部使用,例如在应用程序中访问数据库时,可以使用环境变量来指定数据库连接信息。

下面是一些使用 -e 参数运行 Docker 容器时的示例:

  • 设置单个环境变量:

    docker run -e VAR_NAME=VAR_VALUE image_name

    这将在容器中设置一个名为 VAR_NAME 的环境变量,其值为 VAR_VALUE

  • 设置多个环境变量:

    docker run -e VAR1_NAME=VAR1_VALUE -e VAR2_NAME=VAR2_VALUE image_name

    这将在容器中设置两个环境变量 VAR1_NAME 和 VAR2_NAME,分别对应的值为 VAR1_VALUE 和 VAR2_VALUE

  • 从环境变量文件设置:

    docker run --env-file env_file_name image_name

    env_file_name 是包含环境变量键值对的文件。每行应该包含一个键值对,例如 VAR_NAME=VAR_VALUE。Docker 将读取文件中的键值对,并在容器中设置相应的环境变量。

通过设置环境变量,可以在容器中配置应用程序所需的各种参数,例如数据库连接字符串、API密钥等。这样可以轻松地在不同环境中部署容器,而无需对应用程序的配置进行硬编码。

3. 验证MySQL容器是否创建并运行成功

docker ps

3.1 进入 MySQL 容器

docker exec -it mysql-test /bin/bash

3.2 进入 MySQL

mysql -uroot -p
Enter password:root123456

3.3 查看 host 和 user

select host,user from mysql.user;

  • 确保 root 的 host 为 % 即代表可以远程连接。

4. MySQL 开启远程访问权限

4.1 切换数据库

注意:默认应该就是这个,不切换也行,保险起见还是切换一下

use mysql;

4.2 给 root 用户分配远程访问权限

GRANT ALL PRIVILEGES ON *.* TO root@'%' WITH GRANT OPTION;

参数说明:

  • GRANT:赋权命令
  • ALL PRIVILEGES:当前用户的所有权限
  • ON:介词
  • .:当前用户对所有数据库和表的相应操作权限
  • TO:介词
  • ‘root’@’%’:权限赋给 root 用户,所有 ip 都能连接
  • WITH GRANT OPTION:允许级联赋权

4.3 强制刷新权限

FLUSH PRIVILEGES;

5. 服务器配置 3306 的开放端口

windows 如何开放端口

  • 在虚拟机上开放 3306 端口,允许 MySQL 的入站连接,可以使用以下命令通过防火墙允许入站连接:

    ufw allow 3306

6. 查看 Ubuntu IP

# 查看 IP 地址
ip addr
# 也可以用这个命令
ifconfig

7. 可能出现的问题

  • 可能出现的问题截图

img

  • 问题出现原因

这是因为 MySQL8 之前密码加密规则为 mysql_native_password,而 MySQL8 之后的加密规则为 caching_sha2_password,也就是说,如果要用 Navicat 连接 MySQL,其实只需要将密码规则改回 mysql_native_password 即可;

  • 解决办法如下

7.1 进入 MySQL 数据库

docker exec -it mysql-test /bin/bash
mysql -uroot -p
Enter password:root123456

7.2 选择数据库

use mysql;

7.3 更改密码加密方式

IDENTIFIED BY ‘root123456’:连接时输入密码,密码为 root123456

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

7.4 更新用户密码

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

7.5 刷新权限

FLUSH PRIVILEGES;

运行截图:

8. Navicat 连接 MySQL 测试

到此这篇关于Docker安装MySQL并使用Navicat连接的使用示例的文章就介绍到这了,更多相关Docker MySQL并使用Navicat连接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker容器源码部署httpd用存储卷部署网站(推荐)

    docker容器源码部署httpd用存储卷部署网站(推荐)

    这篇文章主要介绍了docker容器源码部署httpd用存储卷部署网站,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 在Windows系统下安装docker窗口的配置过程

    在Windows系统下安装docker窗口的配置过程

    相信大家都知道Docker有很多种安装的选择,其中支持最好的是Ubuntu系统。而且docker如果想在windows上运行必须借助docker-machine,这篇文章将给大家详细的介绍在Windows系统上安装docker窗口的配置过程,有需要的朋友们可以参考借鉴。
    2016-10-10
  • 详解Docker如何启动一个Centos镜像

    详解Docker如何启动一个Centos镜像

    本篇文章主要介绍了详解Docker如何启动一个Centos镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Docker向数据卷Volume写入数据

    Docker向数据卷Volume写入数据

    这篇文章介绍了Docker向数据卷Volume写入数据的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • docker搭建memcached的详细步骤

    docker搭建memcached的详细步骤

    Memcached 是一个通用的分布式内存缓存系统,它通常用于通过在 RAM 中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(例如数据库或 API)的次数,这篇文章主要介绍了docker搭建memcache,需要的朋友可以参考下
    2022-07-07
  • Docker部署MySQL8集群(一主二从)的实现步骤

    Docker部署MySQL8集群(一主二从)的实现步骤

    本文主要介绍了Docker部署MySQL8集群,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Dockerfile中multi-stage(多阶段构建)详解

    Dockerfile中multi-stage(多阶段构建)详解

    在2017年5月3日即将发行的 Docker 17.05.0-ce 中,Docker 官方提供了简便的多阶段构建 (multi-stage build) 方案,下面这篇文章主要给大家介绍了关于Dockerfile中multi-stage(多阶段构建)的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-03-03
  • docker如何部署eureka-server

    docker如何部署eureka-server

    这篇文章主要介绍了docker如何部署eureka-server问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

    Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法

    本篇文章主要介绍了Docker学习之基于Dockerfile搭建JAVA Tomcat运行环境的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 被弃用的 Docker 会被 Podman 取代吗

    被弃用的 Docker 会被 Podman 取代吗

    Docker 是一种以容器化的方式打包、分发和部署应用程序的方式。自 2013 年 3 月 13 日初始版本发布以来,Docker 已成为容器业界的事实标准。而Kubernetes 是一款由 Google 开发的开源容器编排系统
    2020-12-12

最新评论