(全文验证通过 20180912)
安装方法有三种
1、下载tar.gz包解压安装,查看:https://blog.csdn.net/wqc19920906/article/details/80998777
2、用下面命令直接安装,不过这个安装的是老版本2.6的
yum -y install mongodb mongodb-devel mongodb-server
3、就是本文的安装方式
一、安装
1、是否已安装MongoDB
rpm -qa | grep mongodb
2、yum list mongodb 查看是否有MongoDB源,CentOS7的源位置在/etc/yum.repos.d/,如图:
如果没有MongoDB的源,则进行添加,vi /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
3、安装MongoDB
yum -y install mongodb-org
这个过程好久啊,阿里云的服务器都那么久,见图
4、启动MongoDB
service mongod start
5、 在本机的cmd中连接MongoDB (本机默认配置可省略参数)
mongo --host 127.0.0.1:27017
或者直接 mongo就行
6、查看mongodb中的库,在执行第5步后,在cmd中输入下面命令:
show dbs
7、开机启动
chkconfig mongod on
8、停止服务
service mongod stop
9、重启服务
service mongod restart
10、查看服务状态
service mongod status
11、卸载MongoDB
11.1 先停止服务
service mongod stop
11.2 删除安装包
yum erase $(rpm -qa | grep mongodb-org)
11.3 删除数据目录
rm -r /var/log/mongodb
rm -r /var/lib/mongo
二、mongodb设置密码
mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。所有所有数据库db都需要设置密码
MongoDB 默认安装完成以后,只允许本地连接(改了bindIP后,可以其它计算机访问),同时不需要使用任何账号密码就可以直接连接MongoDB,这样就容易被黑
设置步骤:
1、进入mongodb命令行界面
mongo 或者 mongo 127.0.0.1:27017
2、查看数据库
show dbs #在mongodb新版本里并没有admin数据库,但是并不妨碍第3步操作
3、进入admin数据库
use admin
4、创建管理员账户
db.createUser(
{
user: "abc",
pwd: "aaa@bbb",
roles: [ { role: "root", db: "admin" } ]
}
)
roles中的role可以是以下
5、验证第3步用户添加是否成功
db.auth("useradmin", "adminpassword") #如果返回1,则表示成功。
exit #退出系统
db.auth()方法理解为 用户的验证功能
6、修改配置
vi /etc/mongod.conf
找到#security:
取消注释,修改为
security:
authorization: enabled #注意缩进,缩进参照配置文件其他配置。缩进错误可能第6步重启不成功。
7、重启mongodb
service mongod restart
8、进入mongodb
用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号
use admin
db.auth("abc", "aaa@bbb")
9、新建你需要管理的mongodb 数据库的账号密码
每个数据库都要有独立的密码...
use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })
新建读写账户
use yourdatabase
db.createUser({ user: "youruser2", pwd: "yourpassword2", roles: [{ role: "readWrite", db: "yourdatabase" }] })
比如,用NoSQLBooster fro MongoDB 连接服务器,就需要用这个新建的user password重新登录,并填写好db为yourdatabase,而不是admin 即可
10、现在数据的用户名和密码就建好了。
可以使用:mongodb://youruser2:yourpassword2
@localhost
/yourdatabase
来链接
三、windows机器通过 NoSQLBooster for MongoDB 连接CentOS7上的MongoDB
设置mongodb远程访问:需要防火墙放开端口 27017
编辑mongod.conf将bindIp的值改为红线那样的,并重启mongodb.(注意,最好不要信了红线后面的注释把bindIp给注释掉,会使外网访问不了,这个坑搞死我了...)
vim /etc/mongod.conf
重启mongodb:systemctl restart mongod.service
如果安装第二部分 设置了用户名密码,则需要
四、通过命令行连接MongoDB
先看第三点的修改mongodb.conf的内容,才能进行一下操作
1、MongoDB连接远程服务器的命令格式如下:
mongo 远程主机ip或DNS:MongoDB端口号/数据库名 -u user -p password #password可加可不加双引号
或者:
先用 mongo ip:port 连接上,然后再用 db.auth(user, password)。
2、MongoDB连接远程服务器的命令示例代码如下:
//使用默认端口连接MongoDB
mongo 192.168.1.100
//连接MongoDB并指定端口
mongo 192.168.1.100:27017
//连接到指定的MongoDB数据库
mongo 192.168.1.100:27017/test
//指定用户名和密码连接到指定的MongoDB数据库
mongo 192.168.1.200:27017/test -u user -p password