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

从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

4.4K10

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的桌面,不需要单纯的使用命令行。

8.6K61
  • 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

    2K20

    手把手教你在 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

    6K10

    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.6K20

    在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文件访问软件是无法找到的

    4.2K20

    基于 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/)来表示

    67700

    在Windows的Docker上部署Mysql服务

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

    1.8K00

    一个超级牛皮的容器管理工具Container Desktop

    在 Windows 上,它利用自定义 TCP 中继实现 WSL 与原生环境的通信;5.2.13 版本引入基于 SSH 中继的新方法,结合 Windows 命名管道,提升安全性并减少 TCP 服务暴露风险...在 Windows 系统上,可以直接安装 podman 或者在自定义的 WSL 发行版中按照 Linux 的安装说明配置最新版本的 podman。...Container Desktop 提供了一个定制的 TCP 中继,用于将 Unix 套接字从 WSL 环境传递回 Windows 原生上下文。...的无根容器需要特权访问GUI 完善度基本完善非常完善 不同平台上的性能对比 平台启动时间内存占用CPU 占用稳定性Windows (WSL2)中等中等 (约 200MB)低-中良好macOS (Lima...mysql:8 在 Container Desktop 中,用户可以在 Volumes 选项卡中查看、创建和管理所有卷,并可以直接将卷挂载到新容器中。

    38610

    MySQL中的访问控制详解

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

    67830

    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

    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 子系统体系结构的一个新版本,它是对基础体系结构的一次重大改造。

    2K40

    将你的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.5K10

    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.4K50

    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.9K70

    从外部访问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配置文件,并重新启动负载平衡器进程以使更改生效。

    3.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

    7.2K10
    领券