Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法验证mongoDB_Php_Mongodb_Codeigniter - Fatal编程技术网

Php 无法验证mongoDB

Php 无法验证mongoDB,php,mongodb,codeigniter,Php,Mongodb,Codeigniter,从mongo客户端看来,我可以进行身份验证: > use admin switched to db admin > db.auth('admin','SECRETPASSWORD'); 1 > 但当我试图在codeigniter中的配置文件中连接此代码时 $config['mongo_server'] = null; $config['mongo_dbname'] = 'admin'; $config['mongo_db']['active'] = 'default'; $

从mongo客户端看来,我可以进行身份验证:

> use admin
switched to db admin
> db.auth('admin','SECRETPASSWORD');
1
>
但当我试图在codeigniter中的配置文件中连接此代码时

$config['mongo_server'] = null;
$config['mongo_dbname'] = 'admin';
$config['mongo_db']['active'] = 'default';

$config['mongo_db']['default']['no_auth'] = FALSE;
$config['mongo_db']['default']['hostname'] = 'localhost';
$config['mongo_db']['default']['port'] = '27017';
$config['mongo_db']['default']['username'] = 'admin';
$config['mongo_db']['default']['password'] = 'SECRETPASSWORD';
$config['mongo_db']['default']['database'] = 'mydb';
$config['mongo_db']['default']['db_debug'] = TRUE;
$config['mongo_db']['default']['return_as'] = 'array';
$config['mongo_db']['default']['write_concerns'] = (int)1;
$config['mongo_db']['default']['journal'] = TRUE;
$config['mongo_db']['default']['read_preference'] = NULL;
$config['mongo_db']['default']['read_preference_tags'] = NULL;

$config['mongo_db']['default']['no_auth'] = FALSE;
$config['mongo_db']['test']['hostname'] = 'localhost';
$config['mongo_db']['test']['port'] = '27017';
$config['mongo_db']['test']['username'] = '';
$config['mongo_db']['test']['password'] = '';
$config['mongo_db']['test']['database'] = '';
$config['mongo_db']['test']['db_debug'] = TRUE;
$config['mongo_db']['test']['return_as'] = 'array';
$config['mongo_db']['test']['write_concerns'] = (int)1;
$config['mongo_db']['test']['journal'] = TRUE;
$config['mongo_db']['test']['read_preference'] = NULL;
$config['mongo_db']['test']['read_preference_tags'] = NULL;
我得到了这个错误

Unable to connect to MongoDB: Failed to connect to: localhost:27017: Authentication failed on database 'mydb' with username 'admin': auth failed
我使用一个简单的库

在config.php中创建mongo.php

$config['mongo_server'] = 'localhost';
$config['mongo_dbname'] = 'yourdbname';
以及库中的Mongo.php

<?php
class CI_Mongo extends Mongo
{
    var $db;

    function CI_Mongo()
    {   
        // Fetch CodeIgniter instance
        $ci = get_instance();
        // Load Mongo configuration file
        $ci->load->config('mongo');

        // Fetch Mongo server and database configuration
        $server = $ci->config->item('mongo_server');
        $dbname = $ci->config->item('mongo_dbname');

        // Initialise Mongo
        if ($server)
        {
            parent::__construct($server);
        }
        else
        {
            parent::__construct();
        }
        $this->db = $this->$dbname;
    }
}

这将更改此变量的值:

$config['mongo\u db']['default']['no\u auth']=FALSE

致:


$config['mongo\u db']['default']['no\u auth']=TRUE

不,它不工作,我已经更新了我的问题在MongoDB中,用户连接到数据库。显然,您的管理员用户位于名为admin的数据库中。因此,您需要使用与.Check等效的适当配置选项对该数据库进行顶级身份验证。这可能是你问题的解决办法
function index(){
 $posts = $this->mongo->yourdbname->yourcollection->find();
 foreach($posts as $id => $b){
echo $b['somefieldontable'];
}
}