介绍
翻历史笔记的时候发现的,21年整理出来的。 趁着这次系统整理笔记,我把它搬到了CSDN上。
解压缩
下载好的压缩包,比如我下载的-linux--3.4.2.tgz是找路径的,我都放在了/目录下。
然后进入上面的目录解压:
tar -zxvf -C .
然后我们有一个//-xxx文件夹,后面的配置都在这个文件夹下进行
创建配置文件
有点麻烦。 我在网上看到它需要手动创建几个配置文件,包括数据库文件夹,日志文件夹等,如果不创建,第一次运行会报错,因为这些文件夹不会自动创建。
首先创建一个数据库文件夹,用来放数据库信息。
cd /software/mongodb-xxx
mkdir data/
然后创建日志文件夹:
cd /software/mongodb-xxx
mkdir logs/
最后创建主配置文件夹和主配置文件:
cd /software/mongodb-xxx
mkdir etc/
cd etc/
vi mongodb.conf
然后填充主配置文件,其中提供了各种配置文件:
dbpath=/software/mongodb-xxx/data
logpath=/software/mongodb-xxx/logs/mongodb.log
port=27017
fork=truejournal=false
storageEngine=mmapv1
稍后将讨论参数定义。
27017 应该是默认的监听端口。
首次启动
安装后,首次启动不需要密码。 此时,没有用户。 我们可以使用如下命令启动:
./mongod -f /software/mongodb-xxx/mongodb.conf
启动后,我们需要进入后台,添加管理用户,(这个角色没有无敌用户root,只有一个可以管理用户的用户角色,)。
首先进入shell(进入安装文件夹的bin目录):
mongo
然后在内置的交互界面中,输入以下命令创建用户:
use admin
db.createUser( {user: "wadmin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});
成功后,你会看到,
表示已经创建用户。上面是我从参考1中盗用的图,因为安装过程中没有截图
创建用户后,可以使用show users或**db..users.find()**查看现有用户。
添加管理用户后,需要关闭并根据用户名和密码重新启动。 注意在交互界面应该使用**db.()**关闭,不要使用kill直接杀掉进程。 (如果这样做,请进入data/db目录,删除mongo.lock文件)
然后修改配置文件,在里面添加:
auth=true
重新开始:
./mongod -f /software/mongodb-xxx/mongodb.conf
输入 Mongo shell:
./mongo
再次登录admin数据库,进行用户认证:
use admin
db.auth("wadmin", "123456")
返回 1 表示认证成功。
添加环境变量
将路径添加到系统路径中,并使mongo成为软链接
问题
有一个小问题。 执行db.()关闭服务时,会提示错误:
解决方法是为当前用户添加权限:
db.updateUser(
"wadmin",
{
roles : [
{"role" : "userAdminAnyDatabase","db" : "admin"},
{"role" : "dbOwner","db" : "admin"}, {"role" : "clusterAdmin", "db": "admin"}
]
}
)
然后(),如果出现上面的提示就正常了。
或用于关闭它。
然后重启。
客户端和服务器端版本问题
通常来说是向下兼容的,也就是说支持客户端版本高于服务端版本,反之,如果客户端版本较低,则可能会出现问题。
密码不能包含特殊字符
否则,它可能会报告“SASL 步骤:”
参考:
- 授权验证错误:SASL step:
验证是否启动,可以输入命令:
lsof -i :27017
检查端口是否已被使用。
常用命令
show databases; # 展示当前已有数据库
use db_name; # 切换到指定数据库
show users; # 显示当前数据库下所有账户
db.system.users.find().pretty(); # 显示当前数据库下所有账户(详细信息,含认证方式等)
db.dropUser("用户名"); # 删除指定用户
quit(); # 退出数据库后台,即Mongo shell
exit; # 功能同上
db; # 显示当前使用的数据库
其他认证机制
登录时有几套密码验证机制:
需要注意的是这个参数只能在数据库启动的时候指定!
mongod --setParameter authenticationMechanisms=PLAIN,SCRAM-SHA-256 --auth
如何查看当前启动的是什么验证方式?
use admin
db.system.version.findOne({"_id":"authSchema"})
例子
mongoexport -h 127.0.0.1:27017 -u xxx -p xxx --db volcano --collection content --out temp.csv --authenticationDatabase=volcano --type=csv -f "_id,sourceId,coverImage.0.code"
如果需要导出csv文件,必须指定–type=csv,否则默认还是导出json;
参考资料 Linux下安装配置 用户和数据库管理命令详解 菜鸟教程-官网下载地址