我有以下代码:
$this->connection = new MongoClient($uri, $options);
$this->database = $database;
然而,在第$this->connection
行我得到:
Fatal error: Uncaught exception 'MongoConnectionException' with message 'Failed to connect to: /tmp/mongodb-27017.sock:0: Connection refused' in...
如果我输出以下内容:
var_dump($uri, $options); exit;
我明白了:
string(33) "mongodb:///tmp/mongodb-27017.sock" array(1) { ["connect"]=> bool(true) }
这是在我的开发环境中,我没有使用Mongo的任何用户名/密码,因为我可以单独使用mongo reputation
登录Mongo shell。从那里我可以查看收藏和文件。
最初我被Permissions拒绝,但我将dev /tmp/mongodb-27017.sock的权限更改为777.现在我得到了#34;连接被拒绝了#34;。
无论如何,下面是我ll /tmp/
目录中的文件:
srwxrwxrwx 1 mongodb mongodb 0 Jan 28 07:47 mongodb-27017.sock=
任何人都知道问题是什么,或者我如何进一步调试?感谢
答案 0 :(得分:1)
我建议在PHP中连接不要与您的进程可能无权访问的套接字连接。如果您修改套接字的权限,那么它只是临时的。当你停止mongo db它将删除套接字时,下次启动它时,权限将恢复为默认值(700我认为)。
而是连接到默认端口(27017)mongo在127.0.0.1上打开。
将PHP中的连接字符串更改为以下内容:
$uri = "mongodb://127.0.0.1";
$this->connection = new MongoClient($uri, $options);
答案 1 :(得分:0)
$connection= new \MongoClient("mongodb://localhost:27017");
return $this->db = $connection->selectDB($config['dbname']);
尝试连接本地mongoDB。