无法解析MongoDB URI:“ mongodb://”。 URI中的主机字符串无效

时间:2019-05-22 04:51:53

标签: php laravel mongodb laravel-5.5

尝试使用laravel运行MongoDB 4.0时,出现以下错误

  

PHP致命错误:未捕获的MongoDB \ Driver \ Exception \ InvalidArgumentException:   无法解析MongoDB URI:“ mongodb://”。 URI中的无效主机字符​​串。在/var/www/html/valueableapp/valueable_rest_app/api_src/vendor/mongodb/mongodb/src/Client.php:87`

我使用命令mongo运行mongo shell,它工作正常。 sudo service mongod status以及它也显示运行状态。 即使有人,我也无法启动我的项目。这是我遇到的问题的完整堆栈跟踪 php artisan serve --port = 8080

  

Laravel开发服务器已启动:http://127.0.0.1:8080       [2019年5月22日星期三10:00:54] PHP致命错误:未捕获的MongoDB \ Driver \ Exception \ InvalidArgumentException:无法解析MongoDB URI:'mongodb://'。 URI中的无效主机字符​​串。在/var/www/html/valueable-app/valueable_rest_app/api_src/vendor/mongodb/mongodb/src/Client.php:87中       堆栈跟踪:       #0 /var/www/html/valueable-app/valueable_rest_app/api_src/vendor/mongodb/mongodb/src/Client.php(87):MongoDB \ Driver \ Manager-> __construct('mongodb://',Array,数组)       #1 /var/www/html/valueable-app/valueable_rest_app/api_src/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Connection.php(141):MongoDB \ Client-> __construct('mongodb://',阵列,阵列)       #2 /var/www/html/valueable-app/valueable_rest_app/api_src/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Connection.php(41):Jenssegers \ Mongodb \ Connection-> createConnection('mongodb:// ',数组,数组)       #3 /var/www/html/valueable-app/valueable_rest_app/api_src/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/MongodbServiceProvider.php(30):Jenssegers \ Mongodb \ Connection-> __ construct(Array)       #4 [内部功能]:Jenssegers \ Mongo,在第87行的/var/www/html/valueable-app/valueable_rest_app/api_src/vendor/mongodb/mongodb/src/Client.php中

Config / database.php

<?php

return [
    'fetch' => PDO::FETCH_CLASS,
    'default'=>'mongodb',
    'connections' => array(

        'mongodb' => array(
            'driver'   => 'mongodb',
            'host'     => env('DB_HOST'),
            'port'     => env('DB_PORT'),
            'username' => env('DB_USERNAME'),
            'password' => env('DB_PASSWORD'),
            'database' => env('DB_DATABASE'),
            'options' => [
                'database' => env('DB_DATABASE')
            ]
        ),

    ),
    'migrations' => 'migrations',
    'redis' => [

        'cluster' => false,

        'default' => [
            'host' => env('REDIS_HOST', 'localhost'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

];

.env

APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:q0DOPnhqUzhmMrqryyyN6SDOi6NHKh/BbmJGHw35e3E=

DB_CONNECTION=mongodb
DB_HOST=localhost
DB_PORT=27017
DB_DATABASE=abc
DB_USERNAME=
DB_PASSWORD=



CACHE_DRIVER=array
SESSION_DRIVER=file
QUEUE_DRIVER=sync

CRITERIA_MAX_SCORE=5
CRITERIA_MIN_SCORE=1
MAX_SCORE_APP=1000

先谢谢了。我正在这个网站上寻找解决方案
Laravel 5.2 Mongo MonogDB Failed to parse MongoDB URI,但这个问题没有答案。

2 个答案:

答案 0 :(得分:1)

由于端口号错误,我出现了此错误。请先确认

答案 1 :(得分:0)

就我而言,我只是解决了这个问题,但是将文件名从import sys T=int(sys.stdin.readline().strip()) def sol(x,y,record,d): nx,ny=x,y if d=="E": ny = ny + 1 elif d=="W": ny = ny - 1 elif d=="N": nx = nx - 1 elif d=="S": nx = nx + 1 else: pass if (nx,ny) in record: return nx,ny,False else: record[(nx,ny)]=1 return nx,ny,True for ind in range(T): text=[int(x) for x in sys.stdin.readline().strip().split()] record={} N,R,C,SR,SC=text ins=[ x for x in sys.stdin.readline().strip()] nx,ny=SR-1,SC-1 flag=True record[(nx,ny)]=1 for i in range(len(ins)): d=ins[i] nx, ny, flag = sol(nx, ny, record, d) while flag is False: nx, ny, flag = sol(nx, ny, record, d) out = "Case #%d: %d %d\n" % (ind + 1, nx+1,ny+1) print(out) 更改为.env。 谢谢。