半结构化数据库(semi-structure database)近年来已经成为网站和app后端的常用数据库,其中以MongoDB为代表的半结构化数据库已经被美国一些高科技公司广泛使用。这种非关系型数据库具有以些传统SQL数据库所没有的优点,如不需要复杂的table直接的关系(表之中可以套表),query取出来的为JSON结构数据,可以直接在后端或全栈框架使用等。阿里云和腾讯云都有直接提供MongoDB等服务器可以直接购买使用,但是如果我们有充裕的ECS云服务器,在云服务器上面直接安装MongoDB,安装后在自己服务器的对应端口调用也是一个非常不错的选择。今天讲解一下如何在Ubuntu云服务器上直接安装MongoDB。
导入包关系提供的公钥。
Ubuntu的包管理系统为了更安全的管理下载的包,会对包进行GPG密钥验证。如下指令可以导入MongoDB的官方公钥。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
为MongoDB创建一个源列表文件。
创建为文件的位置在/etc/apt/sources.list.d/mongodb-org-3.4.list
创建的指令为
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
更新包管理系统apt-get
。自不必说,新版的包管理系统才能下载到新版本的包使用。
sudo apt-get update
下载最新版本的MongDB包
sudo apt-get install -y mongodb-org
下载MongoDB服务器对用工具,可以用如下指令以对应版本号
sudo apt-get install -y mongodb-org=3.4 mongodb-org-server=3.4 mongodb-org-shell=3.4 mongodb-org-mongos=3.4 mongodb-org-tools=3.4
由于版本不停在更新,如果不能下载到对应版本号的服务器工具,也可以不规定版本号
sudo apt-get install mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools
如果问使用同意安装未授权的包时输入y
就可以了。
下面讲如何在Ubuntu上启用并提供MongDB服务,供自己或外部服务器使用。首先我们需要船舰一个unit文件,告诉系统如何管理MongoDB资源。
创建一个设置文档,名称为mongodb.service
存放在/etc/systemd/system
文件中,以管理MongoDB服务。
sudo vim /etc/systemd/system/mongodb.service
复制下面内容,存在该文件中(如果不熟悉vim编辑器…建议百度)
# Unit contains the dependencies to be satisfied before the service is started.
[Unit]
Description=MongoDB Database
After=network.target
Documentation=https://docs.mongodb.org/manual
# Service tells systemd, how the service should be started.
# Key User specifies that the server will run under the mongodb user and
# ExecStart defines the startup command for MongoDB server.
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
# Install tells systemd when the service should be automatically started.
# multi-user.target means the server will be automatically started during boot.
[Install]
WantedBy=multi-user.target
更新systemd
服务
systemctl daemon-reload
用systemcl
启动MongoDB
sudo systemctl start mongodb
检查MongoDB是否已经在27017(MongoDB默认端口)运行
netstat -plntu
检查mongodb状态
sudo systemctl status mongodb
如果MongoDB状态正常的话,会显示active(running)
绿色字样,并且会显示PID也就是Process ID和内存CPU使用情况。
为了让该服务在系统启动时自动启动,我们使用如下指令
sudo systemctl enable mongodb
停止使用MongoDB
sudo systemctl stop mongodb
重新启动MongoDB
sudo systemctl restart mongodb
打开MongoDB的shell
mongo
切换到数据库admin管理模式
use admin
创建一个新用户,你自己的用户
db.createUser({user:"admin", pwd:"你的密码", roles:[{role:"root", db:"admin"}]})
将“你的密码”改为你的密码。。。
退出shell。(用exit或者ctrl+C都行)
下面连接MongoDB
重新启动MongoDB,连接刚刚建立的数据库
mongo -u admin -p admin123 --authenticationDatabase admin
将上面的admin123换为你的密码
输入后,MongoDB会进行连接,随后进入到你建立的数据库中。
MongoDB的数据库操作这里就不涉及了,可以传入各种query和建立collection等。详细操作见官方QueryDoc。
warning: 该操作不可逆!!!
使用包管理系统删除mongodb-org
包
sudo apt-get purge mongodb-org*
删除log文件和lib文件
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb
这里节介绍这么多了。
— 这篇文章credit to Vivek Sinha 的 Install MongoDB on Ubuntu 16.04 LTS 这里对该文章作者表示感谢。
— This article credits to Install MongoDB on Ubuntu 16.04 LTS by Vivek Sinha. Thanks for you sharing and your help.
BEST