无法连接到总线:找不到介质

Failed to connect to bus: No medium found

我正在使用 WSL2 Ubuntu 并尝试为 Laravel 应用程序设置环境。我在尝试安装 mysql 时遇到问题。我使用自制软件安装它,当我尝试使用 brew services start mysql 运行 它时,我收到此错误:

Failed to connect to bus: No medium found
Error: Failure while executing; `/home/linuxbrew/.linuxbrew/bin/systemctl --user daemon-reload` exited with 1.

我试图找到有同样问题的人,但我似乎是唯一一个。有什么建议吗?

I tried to find someone with the same problem but I seem to be the only one.

可能没有多少人尝试使用 Brew 在 WSL 中的 Ubuntu 上安装 MySQL ;-)。典型的过程是通过 apt 安装,这将为您提供兼容的(但 non-Oracle)MariaDB 版本,映射到 MySQL 命令。

如果您需要“官方”MySQL 或比 Ubuntu 存储库中可用的更高版本,那么您可以从 the official .deb package as detailed here(以及许多其他指南)进行安装。

至于你的实际问题...

我实际上并没有使用过 Brew,但我将它安装在我在 WSL 中的一个“一次性”Ubuntu 实例中以证实我的直觉。正如我所料,作为 MySQL 安装的一部分,Brew 将 Systemd(的第二个副本)作为 MySQL 依赖项安装到 Brew 目录中。是的,我可以重现错误消息——这并不意外。

WSL 不(很容易)与 Systemd 兼容,正如 Stack Overflow(和其他地方)上的许多其他问题所详述的那样。我会向您指出 one of my answers on Ask Ubuntu.

您可能无法轻松更改 Brew 尝试用来启动 MySQL 的方法,因此我的建议是使用常用的 Ubuntu 软件包。

注意官方.deb可能(我没测试过)也尝试使用Systemd

Ubuntu 包的好处在于它提供了一个“旧式”SysVInit 脚本,允许您通过 sudo service mysql start 启动,这将在 WSL 上运行。

您也可以通过直接执行 MySQL 守护程序开始,并使用适当的 command-line 和适当的配置。 SysVInit 脚本和 Systemd 单元文件都会自动执行此操作,但也可以(正如我在其他答案中详述的那样)手动设置。