首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MySQL和Conda等本地Windows应用程序从Ubuntu连接到WSL2上?

如何将MySQL和Conda等本地Windows应用程序从Ubuntu连接到WSL2上?
EN

Ask Ubuntu用户
提问于 2022-05-31 07:28:38
回答 1查看 670关注 0票数 0

我最近在Windows 11中安装了WSL2 (Ubuntu),以了解它的命令和使用情况。一切正常,但我无法从Ubuntu中访问我的Windows应用程序。

例如,在Windows中,我已经安装了Anaconda和MySQL,我可以从Git、CMD或PowerShell访问它们,但不能从WSL2的Ubuntu中访问它们。

我大部分时间在工作中使用WSL,但我无法使用本地Windows应用程序。

我试图将我的Anaconda和MySQL的路径导出到zsh,但它仍然不起作用:

代码语言:javascript
复制
export PATH="/mnt/c/Users/verma/anaconda3/Library/bin:$PATH"

有什么办法解决这个问题吗?

EN

回答 1

Ask Ubuntu用户

发布于 2022-05-31 11:38:01

如果我正确地理解了你的评论(和提问体),听起来你可能真的在问两个不同的问题:

  • 在Ubuntu/WSL2 2中,如何运行安装在Windows中的类似Anaconda的应用程序。
  • 从Ubuntu/WSL2 2中,如何使用Ubuntu应用程序(如MySQL客户端)连接到运行在MySQL中的网络应用程序(如MySQL服务器)。

在WSL

中从Ubuntu运行Windows应用程序

这部分很简单,但附带警告。

在默认的WSL配置中,运行Windows应用程序有两个部分:

  • 确保它在路径上,或者提供一个完全限定的路径。
  • 使用完整的名称,包括.exe扩展。Linux没有像Windows那样的自动内核级扩展假设。

例如,要运行记事本:

代码语言:javascript
复制
notepad.exe

因为它位于默认的Windows路径( WSL使Ubuntu自动可用)。

要运行,比方说,Microsoft Word:

代码语言:javascript
复制
/mnt/c/Program\ Files/Microsoft\ Office/root/Office16/WINWORD.EXE

由于Office不在默认的Windows路径上,所以需要指定完整的命令行。

请注意,某些应用程序可能需要通过PowerShell脚本进行某些配置。我不确定,但我认为Anaconda可能属于这一类。在这种情况下,您需要首先执行PowerShell,然后让它启动应用程序。类似于:

代码语言:javascript
复制
powershell -c conda

但是(龙来了),请注意,即使您让它运行,WSL中Ubuntu中的Windows通常也是个坏主意。例如,Windows版本的Python将无法理解Linux路径或进程,WSL/Ubuntu在默认情况下将传递给它们。

由于相同的原因,虚拟环境不能工作,因为Windows Python试图设置的路径在Linux/Ubuntu/WSL中无效。

此外,任何本机代码模块都将在Windows环境中运行,而不是在Ubuntu环境中运行,具有相同的路径/进程限制。无论对您还是对代码/解释器来说,事情都会很快变得混乱。

在Ubuntu/WSL中,使用Python的Linux版本,如果需要,使用Anaconda。在Windows中,使用Windows版本。

从WSL2

中的Ubuntu连接到Windows网络应用程序/服务器

WSL2实际上运行在一个单独的、虚拟化的NAT网络上,它是从您的Windows主机上运行的。因此,您需要确定用于Windows主机的适当IP地址,以便从WSL2网络连接到它。

假设在受支持的Windows发行版上默认安装WSL/Ubuntu,mDNS通常是最好的选择。

您可以在Ubuntu中使用的mDNS主机名如下所示:

代码语言:javascript
复制
MyComputerName.local

只要您没有从WSL默认情况下更改DNS解析器,这将与在Ubuntu中运行hostname时看到的相同。

您可以通过以下方式以编程方式确定此值:

  • 在编程语言/环境中获取主机名
  • 附加.local

例如,在Bash中,要连接到Windows MySQL服务器:

  1. 在Ubuntu中安装MySQL客户端: sudo apt安装mysql-client
  2. 通过MySQL连接到"$(hostname).local"服务器: mysql -hostname=$(Hostname).local --user=me -p mydb
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1411512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档