在我们的vps启动后我们启动它,mongod服务没有自动启动,我们无法通过service mongod start
启动它,
文件/var/log/mongo/mongod.log
包含以下日志:
***** SERVER RESTARTED *****
Thu Oct 11 13:51:18
Thu Oct 11 13:51:18 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 13:51:18
Thu Oct 11 13:51:18 [initandlisten] MongoDB starting : pid=3821 port=27017 dbpath=/var/lib/mongo 32-bit host=server2.paransa.org
Thu Oct 11 13:51:18 [initandlisten]
Thu Oct 11 13:51:18 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 13:51:18 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 13:51:18 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 13:51:18 [initandlisten]
Thu Oct 11 13:51:18 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Oct 11 13:51:18 [initandlisten]
Thu Oct 11 13:51:18 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 13:51:18 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 13:51:18 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 13:51:18 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Thu Oct 11 13:51:18 [initandlisten] couldn't open /var/lib/mongo/mydb_main.ns errno:13 Permission denied
Thu Oct 11 13:51:18 [initandlisten] error couldn't open file /var/lib/mongo/mydb_main.ns terminating
Thu Oct 11 13:51:18 dbexit:
Thu Oct 11 13:51:18 [initandlisten] shutdown: going to close listening sockets...
Thu Oct 11 13:51:18 [initandlisten] shutdown: going to flush diaglog...
Thu Oct 11 13:51:18 [initandlisten] shutdown: going to close sockets...
Thu Oct 11 13:51:18 [initandlisten] shutdown: waiting for fs preallocator...
Thu Oct 11 13:51:18 [initandlisten] shutdown: closing all files...
Thu Oct 11 13:51:18 [initandlisten] closeAllFiles() finished
Thu Oct 11 13:51:18 [initandlisten] shutdown: removing fs lock...
Thu Oct 11 13:51:18 dbexit: really exiting now
正如您所看到的,日志说mongo服务器无法打开* .ns文件导致许可湖
但如果我通过以下命令手动运行服务器:
mongod --dbpath=/var/lib/mongo -f /etc/mongod.conf
似乎一切都很好,关于日志文件:
***** SERVER RESTARTED *****
Thu Oct 11 14:02:06
Thu Oct 11 14:02:06 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Oct 11 14:02:06
Thu Oct 11 14:02:06 [initandlisten] MongoDB starting : pid=4090 port=27017 dbpath=/var/lib/mongo 32-bit host=server2.paransa.org
Thu Oct 11 14:02:06 [initandlisten]
Thu Oct 11 14:02:06 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Thu Oct 11 14:02:06 [initandlisten] ** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Thu Oct 11 14:02:06 [initandlisten] ** with --journal, the limit is lower
Thu Oct 11 14:02:06 [initandlisten]
Thu Oct 11 14:02:06 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Oct 11 14:02:06 [initandlisten]
Thu Oct 11 14:02:06 [initandlisten] db version v2.2.0, pdfile version 4.5
Thu Oct 11 14:02:06 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Thu Oct 11 14:02:06 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Oct 11 14:02:06 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidfilepath: "/var/run/mongodb/mongod.pid" }
Thu Oct 11 14:02:07 [websvr] admin web console waiting for connections on port 28017
Thu Oct 11 14:02:07 [initandlisten] waiting for connections on port 27017
并使用--repair arg没有帮助
(也许是因为它可以用mongod --dbpath=/var/lib/mongo -f /etc/mongod.conf
手动启动并在命令中添加--repair arg,记录一切正常!...
任何建议?
答案 0 :(得分:16)
这是一个权限问题,当您通过服务启动时,您正在以mongod(或mongodb等)用户身份运行,当您使用sudo或调用时,您可能以root身份运行(您在上面的注释中确认了这一点)作为根。您需要修复该文件夹中所有文件的权限,而不是以root用户身份启动该服务。
要根据您发布的内容修复文件,假设您的相关用户是mongodb并且该组是mongodb,您可以使用sudo(或以root身份)执行以下操作 - 替换您系统的相应用户:
chown -R mongodb:mongodb /var/lib/mongo
chown -R mongodb:mongodb /var/run/mongodb
chown mongodb:mongodb /var/log/mongo/mongod.log
修复这些文件夹的权限后,您应该可以再次通过服务启动。注意:如果您发布ls -al /var/lib/mongo
的输出,那么我可以为您提供运行所需的确切命令
答案 1 :(得分:4)
sudo rm /data/db/mongod.lock
sudo mongod --dbpath /data/db --repair
sudo mongod --dbpath /data/db
答案 2 :(得分:2)
在CMD中启动mongod.exe之前,请尝试删除*.lock
文件夹中的"\data\db"
文件。
答案 3 :(得分:2)
Stop the MongoDB service
sudo service mongodb stop 删除MongoDB锁定文件
sudo rm /var/lib/mongodb/mongod.lock
Change ownership from root to the MongoDB path
sudo chown -R mongodb:mongodb /var/lib/mongodb/
Access the mongodb Shell
sudo mongod --dbpath=/var/lib/mongodb
Start the MongoDB service
sudo service mongodb start
Test the mongo application
mongo
答案 4 :(得分:1)
您可以使用以下命令从void OnCollisionEnter (Collision other)
{
if (other.transform.CompareTag (GameConstants.TAG_OBSTACLE)) {
Vector3 splashEffectPos = groundCheck.position;
if (splashEffectPos.y < 0.05f)
splashEffectPos.y = 0.05f;
// stop game music
if (SoundManager.Instance.EnableSound) {
gameSoundAS.Play ();
gameMusicAS.Stop ();
// gameSoundAS.PlayOneShot (ballCollisionClip);
}
GameObject splash = Instantiate (splashEffectPrefab, splashEffectPos, Quaternion.identity);
splash.transform.SetParent (GameController.Instance.transform);
GameController.Instance.GameOver ();
gameObject.SetActive (false);
}
}
自动永久运行mongodb:
rc.local
不要担心意外关闭。