本人是新手,刚进入运维行业一个月时间,公司让我搭建mongodb数据库,网上找了很多文档,就是搭建不成功,后来互相结合一下,终于是可以启动了,特此分享一下,希望可以帮助到跟我一样的新手。下面进入正题:
首先去MongoDB官网下载MongoDB,地址https://fastdl.mongodb.org/li...。将下载的文件放到/opt目录下。ps:(依照个人习惯)
1.把tar包传到指定的目录下并解压
tar xf mongodb-linux-x86_64-3.4.9.tgz
2.把解压的目录改个名字
mv mongodb-linux-x86_64-3.4.9 mongodb
3.创建目录,分别用于存放数据和日志
mkdir db
mkdir logs
4..进入bin目录 手动添加编写mongodb.conf配置文件 内容如下
vim mongodb.conf
27017是mongodb数据库的默认端口号,如果你想换成别的端口,登入的时候就是 ,./mongo --port 端口 , 这样登入
* 加上这一行是必须指定用户登入
5.启动mongodb数据库
/bin目录下 执行 ./mongod -f mongodb.conf
6.进入mobgodb的控制台(shell)
/bin目录下执行 ./mongo
7.验证
在控制台 输入 db.version() 命令。 如果显示版本号,就说明启动成功
好的!如果出现了版本号 就说明你的mongodb数据已经搭建成功了,接下来我们在做一些优化!
关闭:(重中之重) ps:如果不按照以下步骤关闭,数据库很可能丢失数据,在启动的时候也会报错。或者pkiil杀进程关闭!
先 use admin 库里
然后执行命令:db.shutdownServer();
然后exit
一定要先 use admin库里 然后再执行命令
设置环境变量,vim /etc/profile 最后面加上如下两行 ps:是HOME
source /etc/profile 这个文件 使其生效
添加开机自启动 vim /etc/rc.local
创建用户:
在哪个库里创建的用户,就要去哪个库里验证
格式:
use admin
db.createUser({user:"root",pwd:"123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
角色名 备注
Read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 只在admin数据库中可用。超级账号,超级权限
我们试一试 来创建个超级用户
创建超级用户
创建库 集合
创建库的格式 就是 use +库名字,如果库已经存在 就进入到这个库,如果不存在,就创建。
集合:相当于mysql的表,如果新创建个库,不在这个库里创建一个集合的话,show dbs的时候 就看不到库
用户名和密码登入格式 : ./mongo --port 22772 -u "root" -p "^wglmko0" --authenticationDatabase "admin"
创建普通用户,在test数据库里有读写权限
查看某一个库里的集合 先进库 在show collections;
备份:
常用命令格式 :mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
./mongodump -h 192.168.1.204 --port 22771 -u data_service -p data_20171214 -d data_service -o /root/
还原
常用命令格式:mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
./mongorestore --port 22772 -u root -p sx@2018 -d data_service /root/data_service --authenticationDatabase admin
如报错 加上这个 --authenticationDatabase admin
好了,水平有限,能够分享的只有这么多,希望可以帮助到新入门的伙伴,也希望大佬多多指点