此教程在deepin 15.8桌面版上安装MongoDB的社区版本。
Deepin 基于Debian(unstable),虽然Debian系统有自己的MongoDB包,但是版本不够新。使用官方的包可以确保能够有用最新版本。
确认系统版本
~ » lsb_release -a penelope@wjj-PCNo LSB modules are available.Distributor ID: DeepinDescription: Deepin 15.8Release: 15.8Codename: unstable
安装MongoDB
其他版本的MongoDB安装可以参考该文档,该指南仅支持64位系统。
导入MongoDB公钥
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
你要是问我公钥哪里来的,我只能告诉你从keyserver获得的。打开网址keyserver.ubuntu.com,输入关键词搜索。
创建MongoDB的软件源
软件源都在/etc/apt/sources.list.d/目录下。
可以选择Debian 7的Wheezy仓库
echo "deb http://repo .mongodb.org/apt/debian wheezy/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
也可以使用Debian 8 的Jessie仓库
echo "deb http://repo.mongodb.org/apt/debian jessie/mongodb-org/3.6 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
当然,这两条命令需要根据你想要的版本修改,查看有哪些版本可以去访问http://repo.mongodb.org/apt/debian。
更新apt-get
sudo apt-get update
<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>
出现了红框中的错误,不要紧张,执行下面的命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68818C72E52529D4
再次执行:
sudo apt-get update
<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>
安装MongoDB软件包
查看有哪些版本的MongoDB软件包
apt-cache policy mongodb-org
<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>
安装最新的稳定版本
sudo apt-get install -y mongodb-org
安装指定版本
要安装特定发行版,必须单独的指定每个组件包以及版本号.
sudo apt-get install -y mongodb-org = 4.0.0 mongodb-org-server = 4.0.0 mongodb-org-shell = 4.0.0 mongodb-org-mongos = 4.0.0 mongodb-org-tools = 4.0.0
如果只安装mongodb-org=4.0.0且不包含组件包,则不论指定的是什么版本,安装的每个MongoDB软件包都是最新版本。
防止版本更新
为防止意外升级,要将MongoDB的版本固定为当前安装的版本
echo "mongodb-org hold" | sudo dpkg --set-selectionsecho "mongodb-org-server hold" | sudo dpkg --set-selectionsecho "mongodb-org-shell hold" | sudo dpkg --set-selectionsecho "mongodb-org-mongos hold" | sudo dpkg --set-selectionsecho "mongodb-org-tools hold" | sudo dpkg --set-selections
解决没有/home/mongodb目录的问题
sudo mkdir /home/mongodbsudo chown -R mongodb:mongodb /home/mongodb
运行MongoDB
MongoDB实例默认将其数据文件存储在 var/lib/mongodb
中,将其日志文件存储在/var/log/mongodb
中,并使用mongodb
用户账户运行。如果要更改运行MongoDB进程的用户,则必须修改/var/lib/mongodb
和/var/log/mongodb
目录的访问控制权限,以授予此用户对这些目录的访问权限。
可以在/etc/mongod.conf
中指定备用的日志和数据文件目录。
启动MongoDB服务
systemctl status mongod
验证MongoDB是否安装成功
查看MongoDB的日志文件/var/log/mongodb/mongod.log
,可以看到类似这样的描述信息
<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>
也可以通过命令过滤查看信息
cat /var/log/mongodb/mongod.log | grep port
默认端口是27017
<port>
是mongod
监听的端口,可以修改配置文件/etc/mongod.conf
中的net.port
设置来配置端口。
停止MongoDB服务
sudo systemctl stop mongod
重启MongoDB服务
sudo systemctl restart mongod
设置开机启动或者警用开机自启
sudo systemctl enable mongod #开机自启sudo systemctl disable mongod #禁用开机自启
使用mongo
确保mongod在运行状态的前提下,在命令行窗口输入mongo
进入交互模式。Ctrl+C或者exit()退出命令窗口。
mongo
<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>
WARNING: Access control is not enabled for the database.关于这个警告,新版本的MongDB增加了安全性设计,推荐用户创建使用数据库时进行验证。如果用户想建立简单连接,则会提示警示信息。
解决方案:
创建管理员并设置密码
>use admin>db.createUser( { user: "admin", //用户名 pwd: "passwd", //密码 roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] //设置权限 })
重启数据库服务器
mongod --auth --port 27017
“–auth”命令即表示访问数据库需要认证。此处可不指定端口,则默认为27017。
启动后即可看到不再提示报警信息。
删除MongoDB
要从系统中完全删除 MongoDB,必须删除 MongoDB 应用程序本身,配置文件以及包含数据和日志的任何目录。
Note: 这个删除MongoDB过程是不可逆的,包括程序配置文件、数据库文件都将被删除。所以,删除前,请备份好配置文件和数据库文件。
1. 停止 MongoDB 服务
sudo systemctl stop mongod
2.删除软件
移除已经安装的MongoDB程序
sudo apt-get purge mongodb-org*
3.删除数据目录
删除 MongoDB 数据库文件和日志文件
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongodb
注意删除自己创建的数据目录