Docker Desktop中安装MySQL并开启远程访问的详细教程

 更新时间:2025年01月15日 09:09:03   作者:谢谢你啊后生仔_xie  
本文主要介绍了在Docker Desktop中安装MySQL并开启远程访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、安装 MySQL 容器

拉取 MySQL 镜像:

docker pull mysql:latest

这将从 Docker Hub 上拉取最新版本的 MySQL 镜像。如果你想使用特定版本的 MySQL,可以将 latest 替换为具体的版本号,例如 mysql:8.0。
运行 MySQL 容器:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3303:3306 mysql:latest

docker run -d:表示在后台运行容器。
–name mysql-container:为容器命名为 mysql-container,你可以使用自己喜欢的名称。
-e MYSQL_ROOT_PASSWORD=your_password:设置 MySQL 的 root 用户密码,将 your_password 替换为你想要设置的密码。
-p 3303:3306:将容器内的 3306 端口映射到主机的 3303 端口,这样你就可以通过主机的 3303 端口访问容器内的 MySQL 服务。

二、配置 MySQL 允许远程访问

进入 MySQL 容器:

docker exec -it mysql-container bash

这将进入到 mysql-container 容器的命令行界面。
登录 MySQL 服务:

mysql -uroot -p

输入之前设置的 your_password 登录 MySQL。
修改 MySQL 配置允许远程访问:
sql

USE mysql;

– 创建允许远程访问的用户或修改 root 用户允许远程访问

CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';

– 授予用户权限

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

– 刷新权限

FLUSH PRIVILEGES;

将 your_user 和 your_password 替换为你想要设置的用户名和密码。
CREATE USER ‘your_user’@‘%’ IDENTIFIED BY ‘your_password’;:创建一个可以从任何 IP 地址访问的用户。如果你想只允许从特定 IP 地址访问,可以将 % 替换为相应的 IP 地址,例如 ‘your_user’@‘192.168.1.100’。
GRANT ALL PRIVILEGES ON . TO ‘your_user’@‘%’ WITH GRANT OPTION;:授予用户在所有数据库和表上的所有权限,并允许该用户授予其他用户权限。

注1:

查看当前用户及其权限:

sql

SELECT user, host FROM mysql.user;

注2:
检查主机上的 MySQL 服务占用情况
使用命令行检查:
cmd

netstat -ano | findstr :3306

这将显示使用 3306 端口的进程的 PID(进程标识符)。
如果你看到有进程正在使用 3306 端口,你可以根据 PID 在任务管理器中查看具体的进程信息。在任务管理器中,点击 “详细信息” 选项卡,找到相应的 PID,确认是否是主机上的 MySQL 服务。

这会列出所有 MySQL 用户及其允许的连接来源(host)。

检查 root 用户是否允许远程连接:

如果 host 为 %,表示允许从任何主机连接。

如果 host 为 localhost,表示只允许本地连接。

三、配置防火墙和网络

确保主机防火墙允许 3306 端口访问:

  • 在 Windows 上,你可以打开 Windows 防火墙高级设置,创建一个新的入站规则,允许 TCP 端口 3306 的访问。
  • 在 macOS 上,打开系统偏好设置 -> 安全与隐私 -> 防火墙,确保允许 MySQL 服务的访问。

检查 Docker 网络设置:

  • 确保 Docker Desktop 的网络设置正常,一般默认设置下应该可以正常工作。如果有问题,可以尝试重启 Docker Desktop 或检查网络模式,通常使用默认的 bridge 模式即可。

四、测试远程连接

使用 MySQL 客户端连接:
在你的电脑上,使用 MySQL 客户端工具(如 MySQL Workbench、Navicat 或命令行)进行连接。
连接参数如下:
主机:你的 Docker 主机的 IP 地址(如果你在本地测试,可以使用 127.0.0.1 或 localhost)。
端口:3303。
用户:你创建的 your_user 或 root。
密码:你设置的 your_password。
注意事项
安全考虑:
开启远程访问会带来一定的安全风险,建议设置强密码,并仅允许必要的 IP 地址访问,避免使用 % 允许所有 IP 访问,除非你确实需要从任何地方访问。
数据持久化:
上述方法将 MySQL 数据存储在容器内,容器删除后数据会丢失。如果需要持久化数据,可以使用 Docker 卷,在运行容器时添加 -v /host/path:/var/lib/mysql 参数,将容器内的 /var/lib/mysql 目录映射到主机的 /host/path 目录,例如:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 -v /my/host/directory:/var/lib/mysql mysql:latest

通过上述步骤,你应该可以在 Docker Desktop 中成功安装 MySQL 并开启远程访问,使你的电脑能够连接到该 MySQL 服务。记得在操作过程中,根据你的具体需求和实际情况调整相关参数和设置,同时注意安全和数据的保存问题。

到此这篇关于Docker Desktop中安装MySQL并开启远程访问的详细教程的文章就介绍到这了,更多相关Docker Desktop MySQL远程访问内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker中nginx的location转发不生效的解决

    docker中nginx的location转发不生效的解决

    这篇文章主要介绍了docker中nginx的location转发不生效的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Docker安装部署单机版Rocket及基础讲解

    Docker安装部署单机版Rocket及基础讲解

    RocketMQ是阿里巴巴旗下一款开源的MQ框架,经历过双十一考研、Java编程语言实现,有非常好完整生态系统,这篇文章主要介绍了用Docker部署安装单机版Rocket及基础讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
    2022-07-07
  • docker容器启动不起来的若干问题解决

    docker容器启动不起来的若干问题解决

    本文主要介绍了docker容器启动不起来的若干问题解决,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • Docker安装方法与Docker四种网络模式详解

    Docker安装方法与Docker四种网络模式详解

    今天小编就为大家分享一篇关于Docker安装方法与Docker四种网络模式的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-09-09
  • 如何免sudo使用docker命令详解

    如何免sudo使用docker命令详解

    有时候发现docker有的指令必须加sudo才能执行,下面这篇文章主要给大家介绍了关于如何免sudo使用docker命令的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。
    2017-12-12
  • 怎样获取docker动态分配的port

    怎样获取docker动态分配的port

    这篇文章给大家主要介绍了如何获取docker动态分配的port,文中通过分析、解决以及后续可能遇到的问题都给大家详细介绍了,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • Docker可视化管理工具DockerUI的使用

    Docker可视化管理工具DockerUI的使用

    DockerUI是一个易用且轻量化的 Docker 管理工具,本文主要介绍了Docker可视化管理工具DockerUI的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-08-08
  • Windows(Win11)如何安装Docker(Docker Desktop)

    Windows(Win11)如何安装Docker(Docker Desktop)

    这篇文章主要介绍了Windows(Win11)如何安装Docker(Docker Desktop),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Docker overlay 网络搭建的方法

    Docker overlay 网络搭建的方法

    Overlay网络是指通过在现有网络上叠加一个软件定义的逻辑网络,这篇文章主要介绍了Docker overlay 网络搭建的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Docker内部MySQL如何开启binlog日志

    Docker内部MySQL如何开启binlog日志

    这篇文章主要介绍了Docker内部MySQL如何开启binlog日志问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论