数据库是日常开发中常常用到的东西,可是对于数据库的安装即一些配置却不是常常需要用的到的。有时,开发者们需要在新机上部署安装数据库,可是对于安装数据库,因为过程繁琐,配置麻烦,以及不经常进行配置等一系列问题,以致于常常这次安装配置完成后,等到下次又忘记怎么进行配置了,所以本人决定将这一系列的操作记录起来,以方便下次进行安装配置。
安装步骤
- 检测是否已安装MongoDB
ps aux|grep mongdb
如果出现以下信息,表示本机已经安装了MongoDB。
- 下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1604-3.4.10.tgz
或者直接到官网下载相应平台的安装包,再进行解压
- 解压
tar zxf mongodb-linux-x86_64-ubuntu1604-3.4.10.tgz
- 安装
将MongoDB移动到/usr/local/mongodb文件夹中
mv mongodb-linux-x86_64-ubuntu1604-3.4.10 /usr/local/mongodb
创建数据库文件夹与日志文件
mkdir /usr/local/mongodb/data
touch /usr/local/mongodb/logs
- 启动
无密码形式(连接不需要用户名与密码):
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017 --fork
有密码形式(连接需要用户名与密码):
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --auth --port=27017 --fork
- 开机启动
无密码形式:
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --port=27017" >> /etc/rc.local
有密码形式:
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend --auth --port=27017" >> /etc/rc.local
常见参数解释
参数 | 说明 |
---|---|
-h(–help) | 获取帮助信息 |
–version | 获取版本信息 |
-f(–config) | 指定配置文件 |
-v(–verbose) | 更多 |
–quiet | 静默输出 |
–port | 指定端口号 |
–bind_ip | IP地址绑定监听器,默认绑定所有本地地址 |
–maxConns | 最大同时连接数,默认为1000000 |
–logpath | 日志路径 |
–logappend | logpath路径下的日志以追加形式记录 |
–fork | 后台运行 |
–noauth | 无认证模式 |
–auth | 认证模式 |
–sysinfo | 打印系统诊断信息 |
–noscripting | 禁用脚本引擎 |
–notablescan | 不允许表扫描 |
–shutdown | 杀死一个正在运行的服务器(用于init脚本) |
–master | master复制模式 |
–slave | slave复制模式 |
–source | 当为slave模式时,指定master的地址和端口 |
–only | 当为slave模式时,指定复制哪一个数据库 |
–autoresync | 自动同步slave的数据 |
–slavedelay | 从master复制到slave,设置延迟时间 |
–dbpath | 指定数据存放目录 |
设置密码
- Mongodb安装好了之后,首先我们使用无密码形式启动Mongodb(无密码启动请看上面安装步骤第6条),进入
/usr/local/mongodb/bin
目录,输入以下命令:
./mogo
- 查看所有数据库:
show dbs
- 使用admin数据库:
use admin
- 创建用户,指派角色:
# test用户名,pwd密码,role角色,db指定数据库
db.createUser({user:'test',pwd:'test1234',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
- 退出客户端,断开Mongodb服务,以有密码形式启动Mongodb,此时你会发现不输入密码是无法链接上Mongodb的
注意:如果之前有创建数据库,后才设置的密码,你会发现not authorized
错误,无法访问该数据库的表,此时你可以使用如下命令,进行改变数据库的角色:
use admin
# test为用户名,dbOwner角色表示数据库拥有者,db指定的数据库名
db.grantRolesToUser( "test" , [ { role: "dbOwner", db: "pythondb" } ])