在 WSL 中安装 MongoDB
Installing MongoDB in WSL
在看到 this 文档后,我试图在 WSL 运行 Ubuntu 18.04 中安装 MongoDB。但是 MongoDB 说:
IMPORTANT
The mongodb
package provided by Ubuntu is not maintained by MongoDB Inc. and conflicts with the official mongodb-org
package. If you have already installed the mongodb package on your Ubuntu system, you must first uninstall the mongodb package before proceeding with these instructions.
MongoDB 还说 WSL 不支持 mongodb-org
WINDOWS SUBSYSTEM FOR LINUX (WSL) - UNSUPPORTED
MongoDB does not support the Windows Subsystem for Linux (WSL).
因此,我使用 sudo apt install mongodb
安装了 mongod
,当我 运行 mongo
时显示错误:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-06-21T13:33:40.606+0530 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017
有没有办法安装并制作合适的包运行?
我最近遇到过这种情况。
尽管MongoDB说它在WSL中不受支持,但您实际上可以安装它。因此,我建议您按照 MongoDB 文档中给出的步骤进行操作。
注意:如果您已经安装了mongodb
,请在安装mongodb-org
之前删除所有这些,因为它可能会在安装过程中引起一些问题:
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo apt-get --fix-broken install
为了安装 mongodb 社区版,我添加了以下命令:
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
现在,得到mongoDB运行ning,
sudo nano /etc/init.d/mongod
将link中的内容粘贴到文件中并保存。
#give permissions
sudo chmod +x /etc/init.d/mongod
#start the service
sudo service mongod start
现在,您可以运行mongo
访问数据库。
希望对您有所帮助。
@bonyem's solution works if you try on Ubuntu 18.04 (and apparently in 19.10) but not in 20.04. WSL version should be 2 (please see this 更新 WSL)。
您还需要按照 https://github.com/shayne/wsl2-hacks 中提到的步骤“伪造”bash 二进制文件以使 systemctl 工作。
这对我有用。
运行 sudo apt install mongodb
然后安装 运行 sudo service mongodb start
它会说* Starting database mongodb
之后我可以使用 mongo
进行连接
我已经尝试了上面的一些答案,它对我不起作用。
然后我跟着一个指南 1:
- 更新 ubuntu 个程序包
- 在命令行安装MongoDB
- 设置您的本地数据库
- 正在创建文件夹和权限
它对我有效!
绕过此问题的最简单方法是 运行 MongoDB on Windows。您仍然可以通过本地主机从 WSL2 进行连接。
对我来说, 导致错误:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
我要安装 Mongo 4.4。许多说明取自@Lyubosumaz 的指示。
摆脱所有 Mongo PPA。
~ ❯ sudo ls /etc/apt/sources.list.d
mongodb-org-4.4.list yarn.list
~ ❯ sudo rm -i /etc/apt/sources.list.d/mongodb-org-4.4.list
删除所有 Mongo 包和碎片。
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-org
sudo dpkg --remove --force-remove-reinstreq mongodb-org-server
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo dpkg --remove --force-remove-reinstreq mongodb-org-mongos
sudo dpkg --remove --force-remove-reinstreq mongodb-org-shell
sudo dpkg --remove --force-remove-reinstreq mongodb-org-tools
sudo apt-get --fix-broken install
yes | sudo apt autoremove
添加新的 PPA 并安装 Mongo 4.4.
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y mongodb-org
您将遇到与之前相同的错误。这是由 mongodb-org 包在安装后尝试使用 systemctl
启动数据库 (source) 引起的。请注意,运行手动执行命令时会抛出相同的错误。
~ ❯ sudo systemctl start mongod
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
但是,运行ning mongod
应该仍然有效!
如果 运行 在 运行 宁 mongod
时出错,您可能需要修改一些权限并创建数据目录。我找到了这些问题的答案 , , and here.
sudo chown $USER /tmp/mongodb-27017.sock
sudo mkdir -p /data/db
sudo chown -R $USER /data/db
我尝试了上面的所有方法,但 none 的方法有效。我看到了微软的官方文档,一切都很顺利。
https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-database#install-mongodb
在看到 this 文档后,我试图在 WSL 运行 Ubuntu 18.04 中安装 MongoDB。但是 MongoDB 说:
IMPORTANT
Themongodb
package provided by Ubuntu is not maintained by MongoDB Inc. and conflicts with the officialmongodb-org
package. If you have already installed the mongodb package on your Ubuntu system, you must first uninstall the mongodb package before proceeding with these instructions.
MongoDB 还说 WSL 不支持 mongodb-org
WINDOWS SUBSYSTEM FOR LINUX (WSL) - UNSUPPORTED
MongoDB does not support the Windows Subsystem for Linux (WSL).
因此,我使用 sudo apt install mongodb
安装了 mongod
,当我 运行 mongo
时显示错误:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
2020-06-21T13:33:40.606+0530 E QUERY [js] Error: couldn't connect to server 127.0.0.1:27017
有没有办法安装并制作合适的包运行?
我最近遇到过这种情况。
尽管MongoDB说它在WSL中不受支持,但您实际上可以安装它。因此,我建议您按照 MongoDB 文档中给出的步骤进行操作。
注意:如果您已经安装了mongodb
,请在安装mongodb-org
之前删除所有这些,因为它可能会在安装过程中引起一些问题:
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo apt-get --fix-broken install
为了安装 mongodb 社区版,我添加了以下命令:
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
sudo apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org
现在,得到mongoDB运行ning,
sudo nano /etc/init.d/mongod
将link中的内容粘贴到文件中并保存。
#give permissions
sudo chmod +x /etc/init.d/mongod
#start the service
sudo service mongod start
现在,您可以运行mongo
访问数据库。
希望对您有所帮助。
@bonyem's solution works if you try on Ubuntu 18.04 (and apparently in 19.10) but not in 20.04. WSL version should be 2 (please see this 更新 WSL)。
您还需要按照 https://github.com/shayne/wsl2-hacks 中提到的步骤“伪造”bash 二进制文件以使 systemctl 工作。
这对我有用。
运行 sudo apt install mongodb
然后安装 运行 sudo service mongodb start
它会说* Starting database mongodb
之后我可以使用 mongo
我已经尝试了上面的一些答案,它对我不起作用。 然后我跟着一个指南 1:
- 更新 ubuntu 个程序包
- 在命令行安装MongoDB
- 设置您的本地数据库
- 正在创建文件夹和权限
它对我有效!
绕过此问题的最简单方法是 运行 MongoDB on Windows。您仍然可以通过本地主机从 WSL2 进行连接。
对我来说,
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
我要安装 Mongo 4.4。许多说明取自@Lyubosumaz 的指示
摆脱所有 Mongo PPA。
~ ❯ sudo ls /etc/apt/sources.list.d
mongodb-org-4.4.list yarn.list
~ ❯ sudo rm -i /etc/apt/sources.list.d/mongodb-org-4.4.list
删除所有 Mongo 包和碎片。
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
sudo dpkg --remove --force-remove-reinstreq mongo-tools
sudo dpkg --remove --force-remove-reinstreq mongodb-org
sudo dpkg --remove --force-remove-reinstreq mongodb-org-server
sudo dpkg --remove --force-remove-reinstreq mongodb-server-core
sudo dpkg --remove --force-remove-reinstreq mongodb-org-mongos
sudo dpkg --remove --force-remove-reinstreq mongodb-org-shell
sudo dpkg --remove --force-remove-reinstreq mongodb-org-tools
sudo apt-get --fix-broken install
yes | sudo apt autoremove
添加新的 PPA 并安装 Mongo 4.4.
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y mongodb-org
您将遇到与之前相同的错误。这是由 mongodb-org 包在安装后尝试使用 systemctl
启动数据库 (source) 引起的。请注意,运行手动执行命令时会抛出相同的错误。
~ ❯ sudo systemctl start mongod
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
但是,运行ning mongod
应该仍然有效!
如果 运行 在 运行 宁 mongod
时出错,您可能需要修改一些权限并创建数据目录。我找到了这些问题的答案
sudo chown $USER /tmp/mongodb-27017.sock
sudo mkdir -p /data/db
sudo chown -R $USER /data/db
我尝试了上面的所有方法,但 none 的方法有效。我看到了微软的官方文档,一切都很顺利。
https://docs.microsoft.com/en-us/windows/wsl/tutorials/wsl-database#install-mongodb