首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从windows访问wsl中的docker mysql

要从 Windows 访问运行在 WSL(Windows Subsystem for Linux)中的 Docker 容器中的 MySQL 数据库,你需要确保以下几点:

  1. MySQL 容器正在运行
  2. MySQL 容器的端口已映射到 WSL 的端口
  3. MySQL 用户允许从外部主机连接
  4. 正确配置 Windows 和 WSL 之间的网络连接

以下是详细的步骤:

1. 启动 MySQL 容器并映射端口

假设你已经在 WSL 中安装了 Docker,并且有一个 MySQL Docker 镜像,你可以使用以下命令启动 MySQL 容器,并将容器的 MySQL 端口(默认是 3306)映射到 WSL 的端口。

代码语言:javascript
复制
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:latest

在这个命令中:

  • --name mysql-container:为容器指定一个名称。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL root 用户的密码。
  • -p 3306:3306:将容器的 3306 端口映射到 WSL 的 3306 端口。
  • -d mysql:latest:在后台运行 MySQL 容器,使用最新的 MySQL 镜像。

2. 检查 MySQL 容器状态

确保 MySQL 容器正在运行:

代码语言:javascript
复制
docker ps

你应该能看到类似以下的输出:

代码语言:javascript
复制
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                    NAMES
xxxxxxxxxxxx   mysql:latest   "docker-entrypoint.s…"   xx minutes ago   Up xx minutes   0.0.0.0:3306->3306/tcp   mysql-container

3. 配置 MySQL 用户权限

默认情况下,MySQL root 用户只能从 localhost 连接。你需要创建一个允许从外部主机连接的用户,或者修改 root 用户的权限。

进入 MySQL 容器

代码语言:javascript
复制
docker exec -it mysql-container mysql -u root -p

输入你在启动容器时设置的 root 密码。

创建一个允许外部连接的用户

代码语言:javascript
复制
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

或者,修改 root 用户的权限

代码语言:javascript
复制
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'my-secret-pw';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. 获取 WSL 的 IP 地址

在 WSL 中运行以下命令获取 WSL 的 IP 地址:

代码语言:javascript
复制
hostname -I

你会得到类似 172.20.240.1 的 IP 地址。

5. 从 Windows 连接到 WSL 中的 MySQL 容器

现在,你可以从 Windows 使用 MySQL 客户端工具(如 mysql 命令行工具、MySQL Workbench 或其他数据库管理工具)连接到运行在 WSL 中的 MySQL 容器。

使用命令行工具连接

打开 Windows 命令提示符或 PowerShell,运行以下命令:

代码语言:javascript
复制
mysql -h <WSL_IP_ADDRESS> -P 3306 -u youruser -p

在这个命令中:

  • <WSL_IP_ADDRESS>:替换为你在步骤 4 中获取的 WSL IP 地址。
  • -P 3306:指定端口号。
  • -u youruser:指定 MySQL 用户名。
  • -p:提示输入密码。

6. 防火墙和网络配置

确保 Windows 防火墙允许外部连接到 3306 端口。如果你在 WSL 中运行 Docker 容器,还需要确保 WSL 的防火墙规则允许外部访问 3306 端口。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在Windows(WSL)中如何迁移Docker

前言 在Windows 10中Docker是默认安装到WSL中的,而安装到WSL中的任意分发版都是默认放在C盘中的。这样会让我们的C盘资源极度紧张,而且也限制了Docker的镜像数量。...从运维角度来说,我们清楚系统盘的重要性,原则上是将应用数据和文档都避开C盘,这样一来能增加C盘的稳定性(减少IO操作,降低磁盘故障风险),还能保证在重装系统后不会导致数据和文档的丢失。...迁移步骤 确认Docker是否安装到WSL 查看Docker桌面的“设置》Resources》ADVANCED” ,如果如下图所示则证明是Docker是安装在WSL中: 以管理员身份运行PowerShell...查看Docker安装到WSL的分发版,执行命令:wsl --list --all 从上述命令中我们可以看到Docker安装了两个分发版:docker-desktop-data和docker-desktop...docker-desktop-data D:\tmp\wsl-docker-desktop-data.tar 退出原先的Docker分发版,执行如下命令: wsl --unregister docker-desktop

4K10

Linux中安装Docker,在Docker中安装MySQL和Redis并在Windows下连接访问(图文教程)

一、前言 随着分布式微服务的火爆,越来越多的服务需要一个个的部署很麻烦,随之带动了自动化部署的趋势.小编也是刚刚入门,自动化的部署还没有学完,刚刚接触Docker,觉得非常方便,直接运行镜像就可以!!...直接用支付宝登录 ---> 要用自己的,用我的没用 重启 演示 四、安装MySQL - 拉去MySQL镜像 sudo docker pull mysql:5.7 ) - Docker...(把容器的3306映射到linux中3306,这样windows上就可以访问这个数据库) -d 后台运行 - Docker配置MySQL vim /mydata/mysql/conf/my.cnf #...重启MySQL使配置生效 docker restart mysql - 查看正在运行的容器 docker images ps 五、Windows下链接Linux的MySQL - 获取Linux的ip地址...的命令 appendonly yes - Windows的Redis Desktop来连接Redis 软件连接地址: 链接:https://pan.baidu.com/s/1NDV5K_r7JqTQAO0

1.3K10
  • 在Linux的Windows子系统上(WSL)使用Docker(Ubuntu)

    经过几次调整WSL(用于Linux的Windows子系统,也被称为Bash for Windows)可以用于Docker for Windows。...例如,您可以在开发计算机上使用本地Docker客户端与Azure中的Docker进行通信。这使我们可以让WSL中的客户端与主机上运行的守护进程通信。...前提: 打开Hyper-V,并打开cpu虚拟化功能 安装Docker for Windows 安装WSL 配置Docker for Windows 在常规设置中,您需要公开没有TLS的守护进程。...此步骤是必需的,以便守护程序在TCP端点上进行侦听。如果你不这样做,那么你将无法从WSL连接。 所以为了让客户端和docker通信,必须打开以下黄色背景的选项!...因此,为了避免这种情况,您需要在主目录中的一个名为.bash_profile或者 .bashrc的文件中设置该变量, 这两个文件只支持ssh命令终端用vi打开 在FileZilla文件访问软件是无法找到的

    4K20

    在 WSL 2 中基于 Docker 编排 LNMP 运行环境

    在 WSL 中可以安装 Docker,但是由于 WSL 没有使用真正的 Linux 内核,而是模拟,所以有诸多权限限制,而在 Windows 10 最新版(version 2004)提供的 WSL 2...中,使用了真正的 Linux 内核,这样一来,就可以在其中运行原生的 Linux 容器,也因此,从 WSL 2 开始,Docker Desktop for Windows 支持通过配置将 Docker...在 Windows 宿主机中打开已运行的 Docker Desktop 设置界面,在通用(General)选项中勾选「Use the WSL 2 based engine」: ?...在 Ubuntu 中运行 Docker 命令 在 Windows PowerShell 中运行 wsl 启动默认的 Ubuntu 虚拟机,就可以运行 docker 相关命令了,表示 Docker 已经成功集成到...在 Windows 宿主机中打开 hosts,配置一个 blog.test 虚拟域名: 127.0.0.1 blog.test 就可以在浏览器中通过 http://blog.test 访问部署在 WSL

    6.9K10

    wsl2 固定ip_wsl2 ssh

    WSL2固定ip地址 当前问题 解决方案 当前问题 在使用win10的wsl2子系统时,windows会通过虚拟交换机给win10本机与wsl2子系统各自会分配一个ip地址,当windows电脑重启并再次打开...目前我在wsl2上安装了docker环境,启动了一个mysql容器并映射了3306端口到docker宿主机的33306,这样windows可以通过wsl2-ip:33306访问mysql,docker容器之间也可以通过...wsl2-ip:33306访问mysql。...我按照上面的思路并结合自己的需求编写了一个简单的bat脚本,每当我开机后需要用到docker时就执行该脚本,这样就能够通过固定的ip地址去访问服务了。...自己首先划定了一个虚拟的局域网络 192.168.169.1/28,然后将192.168.169.1分配给了windows,192.168.169.2分配给了wsl2,这样就可以通过指定的ip地址访问相应系统上的服务了

    1.5K20

    WSL:在 Windows 系统中开发 Linux 程序的又一神器

    更普遍的使用场景是:在一台 Windows/Mac 系统中,安装虚拟机,然后在虚拟机中安装 Linux 操作系统。...后来需要开发跨平台的应用,开发模式就变成了: 敲代码:indows 系统中中的 Visual Studio; 编译 Windows 应用程序: 直接用 Visual Studio 中的 VC 编译器来编译...其实,在 Windows 系统中,还有一种安装 Linux 系统的方式,这就是 WSL/WSL2! 下面,我就把自己的安装、配置过程与大家分享一下! 什么是 WSL?...这部分没有什么好掰扯的,直接从微软官网摘录如下: WSL(Windows Subsystem for Linux):Windows 系统中的一个子系统,在这个子系统上可以运行 Linux 操作系统。...WSL2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它是对基础体系结构的一次重大改造。

    1.9K40

    将你的Windows,快速打造成Docker工作站!

    1.2 开启WSL2 如下图,在控制面板,找到程序选项,点击 “启用或关闭Windows功能”。 ? 从弹出的对话框里,划到最下边,然后给“适用于Linux的Windows子系统“,打勾,完事! ?...要启用WSL2,必须要把Windows10升级到最新版本才可以。在Powershell中,执行下面命令,切换成WSL2版本。...wsl --set-default-version 2 2 安装Ubuntu子系统 从应用商店安装Ubuntu系统,这个系统将会以软件的形式存在。...安装Docker 安装Docker,直接从官方下载最新的Windows版本就可以了,不要下载一些其他平台的阿猫阿狗。...比如我想要一个MySQL数据库,就不需要再跑到MySQL官方下载一个,然后进入繁杂的安装程序中。直接在Docker上搞一个就可以了。 ?

    1.4K10

    MySQL中的访问控制详解

    本文将深入探讨MySQL中的访问控制机制,并提供一个代码示例来帮助读者更好地理解。 什么是访问控制? 访问控制是一种安全机制,用于限制对系统、资源或数据的访问权限。...在MySQL中,访问控制用于管理用户对数据库的访问权限,包括读取、写入、修改和删除数据等操作。 MySQL中的访问控制 MySQL提供了多层次的访问控制机制,包括全局级别和数据库级别的权限管理。...,演示如何在MySQL中管理用户的访问权限。...结论 MySQL中的访问控制是确保数据库安全的重要机制。通过全局级别和数据库级别的权限管理,我们可以精确控制用户对数据库的访问权限。...本文详细介绍了MySQL中的访问控制机制,并提供了一个代码示例来帮助读者更好地理解。希望本文对您在技术面试中的表现有所帮助!

    53830

    在Windows的Docker上部署Mysql服务

    如果开发环境是Windows,且开发的代码不依赖于系统,即不用在linux上做开发,则可以将全套环境都部署在Windows上。 本地安装数据库会污染操作系统环境,且后期维护成本都比较高。...而使用Windows Docker Desktop去做部署是一个很好的选择。 本文就以Mysql部署为例,讲解操作和验证方法。...获取镜像 打开Docker Desktop,在搜索框中检索 mysql 点击该镜像(Image),此时有一个下载的过程。...端口号指定后,我们就可以在Windows中其他软件上访问数据库。这一步非常重要,很多启动后连不上数据库的情况都是这两项没配置。 MYSQL_ROOT_PASSWORD用于指定root账号的密码。...容器外部验证 我们选用vscode的mysql shell插件,它是甲骨文公司的产品,值得信赖。

    1.2K00

    从外部访问Kubernetes中的Pod

    本文转载自jimmysong的博客,可点击文末阅读原文查看 本文主要讲解访问kubernetes中的Pod和Serivce的几种方式,包括如下几种: hostNetwork hostPort NodePort...如果在Pod中使用hostNetwork:true配置的话,在这种pod中运行的应用程序可以直接看到pod所在宿主机的网络接口。...Kubernetes中的service默认情况下都是使用的ClusterIP这种类型,这样的service会产生一个ClusterIP,这个IP只能在集群内部访问。...Ingress controller 是部署在Kubernetes之上的Docker容器。它的Docker镜像包含一个像nginx或HAProxy的负载均衡器和一个控制器守护进程。...控制器守护程序从Kubernetes接收所需的Ingress配置。它会生成一个nginx或HAProxy配置文件,并重新启动负载平衡器进程以使更改生效。

    2.9K20

    WSL与Windows交互实践

    通俗来讲是在Windows10 嵌入了个Linux子系统(默认是ubuntu),方便运行大部分 Linux 命令及软件,比如grep MySQL Apache。...WSL新特性 从Windows10 1709版本时开始,可以直接输入wsl进入交互环境, bash方式会逐渐废弃掉。...WSL管理配置 Windows10自带了wslconfig,去管理多个安装的发行版,比如卸载某个发行版,设置默认启动的发型版。 在PowerShell中输入wslconfig /?...WSL交互 也是从1709开始,WSL支持在Windows 10上直接使用 Linux命令: PS D:\test> wsl ls -la total 5836 drwxrwxrwx 1 root root...5.2 多复制一份 在宿主机上找到 docker.exe,然后复制一份重命名为 docker 放到同级目录,这样在wsl中也是可以执行的,有点蠢萌黑魔法的感觉。

    2.3K50

    WSL与Windows交互实践

    WSL是什么 ​ WSL 是Windows Subsystem for Linux 的简称,主要是为了在Windows 10上原生运行Linux二进制可执行文件(ELF格式),而提供的兼容层。...WSL新特性 从Windows10 1709版本时开始,可以直接输入wsl进入交互环境, bash方式会逐渐废弃掉。...WSL管理配置 Windows10自带了wslconfig,去管理多个安装的发行版,比如卸载某个发行版,设置默认启动的发型版。 在PowerShell中输入wslconfig /?...WSL交互 也是从1709开始,WSL支持在Windows 10上直接使用 Linux命令: PS D:\test> wsl ls -la total 5836 drwxrwxrwx 1 root root...5.2 多复制一份 在宿主机上找到 docker.exe,然后复制一份重命名为 docker 放到同级目录,这样在wsl中也是可以执行的,有点蠢萌黑魔法的感觉。

    2.8K70

    手把手教你在 windows 上安装 Docker

    前言 大家好,我是潇潇雨声,今天为大家带来一篇关于在 Windows 环境下使用 Docker 的教程。对于 Docker,我们可以简单地将其看作一种方便的软件安装方式,而无需深入涉及其复杂的概念。...选择使用 Docker 主要是为了省事,比如在 Windows 上安装 MySQL、Redis 等软件时,繁琐的配置可能会成为阻碍前进的绊脚石。...而使用 Docker 后,部署仅需一键操作,无需为琐碎的配置和晦涩的英文文档而烦恼。 WSL2 什么是 WSL?...WSL 全称是 Windows Subsystem for Linux ,适用于 Linux 的 Windows 子系统,允许在 Windows 操作系统上运行 Linux 二进制文件,使开发人员能够在...在 win 版本的 Docker 中已经默认安装了 我们来测试一下,按下 win + R输入CMD 输入 docker-compose --version 执行 hello world docker

    4.8K10

    基于 Docker 的深度学习环境:Windows 篇

    本篇文章,我们聊聊如何在 Windows 环境下使用 Docker 作为深度学习环境,以及快速运行 SDXL 1.0 正式版,可能是目前网上比较简单的 Docker、WSL2 配置教程啦。...安装 Docker 应用程序 我们可以从 Docker 官方网站,获取到 Docker 应用程序安装包的下载。...没有关系,再次执行命令即可,等到能够看到终端展示支持的 Linux 操作系统的列表,表示 WSL 初始化正常,网络访问正常: # wsl --install 适用于 Linux 的 Windows 子系统已安装...写到这里,Windows 环境下的 Docker 深度学习环境就聊完了,如果你想了解更多,可以翻阅《基于 Docker 的深度学习环境:入门篇》文章中的“AI 相关的 Docker 镜像,及实际使用”和...环境的文章几乎一致,除了在 Linux 环境下,我们可以通过 pwd 来表示当前目录,而 Windows 环境中,最佳实践是通过完整目录(C:/docker-sdxl/stabilityai/)来表示

    59300

    QAnything本地知识库问答系统:基于检索增强生成式应用(RAG)两阶段检索、支持海量数据、跨语种问答

    系统下请先进入wsl环境指定单GPU启动cd QAnythingbash run.sh 0 # 指定0号GPU启动 GPU编号从0开始 windows机器一般只有一张卡,所以只能指定0号GPU指定多GPU...dos格式的,而linux却是只能执行格式为unix格式的脚本,所以在windows上编辑过的文件在linux上(windows下执行wsl后的环境通常也是linux)执行时会报错。...将docker-compose-xxx.yaml中的freeren/qanyxxx:v1.0.9改为freeren/qanyxxx:v1.0.8git clone https://www.wisemodel.cn...:3306' (111)原因:将之前的QAnything代码拉取下来后,复制了一份代码到其他的地址,其中有一个volumes是mivlus和mysql默认的本地数据卷,复制后可能导致了mysql的数据卷冲突...docker-compose-linux.yaml启动解决方案:使用docker-compose-windows.yaml启动参考链接:https://github.com/netease-youdao

    1.9K20

    Windows安装使用Docker,方便你的开发和部署(DockerDesktop篇)

    安装之前 在安装之前,我们实现需要将Windows的某些设置开启一下。 我们搜索“启用或关闭Windows功能”,去开启我们Docker所需要的选项。...Windows中的Docker它可以依赖于两种环境,分别是:Hyper-V、WSL。...第一种是一个虚拟环境,也就是虚拟机,第二中是Windows的Linux子系统(系统要求不低于Window10的2021版本)。 我选择WSL,毕竟虚拟机肯定是没用子Linux系统的反应快。...那我这里就默认选择Windows的Linux子系统了,Hyper-V我不是很推荐,相信我直接选择WSL吧,WSL好很多,Hyper-V直接不去看。 开启后应该会提示重启哦!...我们可以直接去Windows的应用商店去下载,目前UB,DB的Linux系统都有,当然,我选择了Kali,而且WSL也支持Linux的桌面,不需要单纯的使用命令行。

    7.9K61

    神器:WSL和Docker--程序员和运维人员的致胜法宝

    有了 WSL,你可以在同一个系统中同时享受 Windows 的易用性和 Linux 的强大功能。无论是进行软件开发、服务器管理还是数据分析,WSL 都能为你提供更多的选择和便利。...文件系统交互 WSL 与 Windows 文件系统相互集成。你可以在 Linux 子系统中访问 Windows 磁盘上的文件,也可以在 Windows 中访问 Linux 子系统中的文件。...例如,在 Linux 终端中,你可以使用“/mnt/c”访问 Windows C 盘的内容。 4. 软件开发 WSL 非常适合进行软件开发。...下载安装程序 访问Docker 官方网站(https://www.docker.com/products/docker-desktop),下载适用于 Windows 的 Docker Desktop 安装程序...wsl中使用docker 安装docker desktop时,默认启用wsl2,启用后在子系统中可直接使用docker 命令,操作后windows同步生效。

    24810
    领券