mongodb run error
Mongodb 启动常见错误
Ubuntu 系统下的 Mongodb 安装好后,官方推荐我们用 service mongod start
的方式来启动数据库。
一旦通过此种方式启动数据库,有三点需要注意:
输入
ps -aux|grep mongod
mongodb /usr/bin/mongod --config /etc/mongod.conf
用户名 二进制文件路径 命令参数--config /etc/mongod.conf
上面代码说明数据库实际是通过配置文件的方式来启动的。
mongodb
mongod 如果成为一种服务,那么启动 mongod 这个进程的用户是 mongodb,而不是 root 或其他普通用户。
所以当你想用命令行+参数的方式或者mongod -f /etc/mongod.conf
来启动 mongod,总会报错。
常见有两种错误:
Failed to unlink socket file /tmp/mongodb-27017.sock
.sock 文件是连接 Mongodb 的会话文件,你可以理解为缓存。
为了避免每次重新连接 Mongodb,数据库会把之前的连接存储起来以供下次直接访问。
但缓存偶尔会失效,所以删除/tmp/mongodb-27017.sock
文件,直接连接数据库即可。
Unable to create/open lock file: /data/db/mongod.lock
Unable to create/open lock file: /var/lib/mongodb/mongod.lock
mongod.lock 文件是数据库设计的一个锁文件,用来防止多个数据库实例占用一个连接。
每个数据库实例,都必须创建一个锁或打开现有的锁,才能成功启动。
锁的文件根据你的数据目录不同而不同,可能是/data/db/mongod.lock
,也可能是/var/lib/mongodb/mongod.lock
。
Unable 的意思是不能,也就是权限不够,如果你本身是 root 用户,肯定不会出现这种错误。
root 用户是最高管理员,拥有所有权限,无所不能,但同时也非常危险,所以一个系统只有一个 root 用户。
出现这个问题的原因就是因为你是普通用户,那我们通过 sudo 来获得此锁文件的读权限即可。
sudo chown -R <your-username> db |