数据库 [] 未配置 Laravel 5
Database [] not configured Laravel 5
我在 phpmyadmin 和新表中创建了新数据库。
那我就
public function next(Request $request){
$langs = DB::connection('mydb')->select('select * from lang');
}
并得到
Database [compgen] not configured.
在我的 .env
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=123
在我的 config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '123'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'test_',
'strict' => false,
],
您使用的是单一连接,因此无需指定:
$langs = DB::table('lang')->get();
只有在使用 multiple DB connections 时才应使用 connection()
方法。
在我的例子中,我使用了 2 个数据库连接,第二个添加的连接没有被缓存,命令调用:
php artisan config:cache
成功了。
要查看发生了什么,只需在 DatabaseManager->configure
方法中输出 $connections
变量即可。
在我的例子中,这是一个错误的数据库用户名。我在 config/database.php 以及 .env 文件中设置了它,其中一个与另一个不同。搜索时发现此主题,认为这可能对某人有所帮助。
遇到此问题的任何人 - 如果您使用的是 Laravel 5.4 或更新版本,您可以在 config/database.php
中设置新的数据库连接
'mysql_test' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION',
],
'engine' => null,
],
我创建了 3 个新的 env
变量 DB_USERNAME_TEST
、DB_PASSWORD_TEST
、DB_DATABASE_TEST
使用类似
的内容编辑.env
DB_DATABASE_TEST=test_db
DB_USERNAME_TEST=local
DB_PASSWORD_TEST=localpassword
确保配置已刷新:php artisan config:cache
您应该能够 运行 在您的新测试数据库上迁移数据库,如下所示:
php artisan migrate:refresh --database=mysql_test
对我来说,连接在开发环境中有效,但在生产环境中无效,所以经过大量搜索后,我不得不重建配置缓存,它成功了。我在laravel根目录下运行以下命令:
php artisan config:cache
我为这个错误苦苦挣扎了几个小时,并找到了适合我的解决方案。如果您无法使用 php artisan config:cache
删除缓存,因为它会在您 运行 之后抛出错误:
[InvalidArgumentException]
Database [] not configured
如果您确定连接参数正确,请尝试手动删除 bootstrap 缓存配置文件,这些文件位于 app/bootstrap/cache 文件夹中。
希望它能帮助别人。
确保参数
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD="password"
再发,
php artisan optimize:clear
if this error shows when you use the validation so it is simple :) just check all the validation rules and messages are written >
correctly
对我来说,我遇到了这个错误,我通过在验证规则中只用逗号替换点来解决它。
我遇到了同样的问题,但是当我添加时
'default' => env('DB_CONNECTION', 'mysql'),
到database.php.It似乎已经解决了问题
我在 phpmyadmin 和新表中创建了新数据库。
那我就
public function next(Request $request){
$langs = DB::connection('mydb')->select('select * from lang');
}
并得到
Database [compgen] not configured.
在我的 .env
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=123
在我的 config/database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'test'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', '123'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'test_',
'strict' => false,
],
您使用的是单一连接,因此无需指定:
$langs = DB::table('lang')->get();
只有在使用 multiple DB connections 时才应使用 connection()
方法。
在我的例子中,我使用了 2 个数据库连接,第二个添加的连接没有被缓存,命令调用:
php artisan config:cache
成功了。
要查看发生了什么,只需在 DatabaseManager->configure
方法中输出 $connections
变量即可。
在我的例子中,这是一个错误的数据库用户名。我在 config/database.php 以及 .env 文件中设置了它,其中一个与另一个不同。搜索时发现此主题,认为这可能对某人有所帮助。
遇到此问题的任何人 - 如果您使用的是 Laravel 5.4 或更新版本,您可以在 config/database.php
'mysql_test' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
'modes' => [
'ONLY_FULL_GROUP_BY',
'STRICT_TRANS_TABLES',
'NO_ZERO_IN_DATE',
'NO_ZERO_DATE',
'ERROR_FOR_DIVISION_BY_ZERO',
'NO_AUTO_CREATE_USER',
'NO_ENGINE_SUBSTITUTION',
],
'engine' => null,
],
我创建了 3 个新的 env
变量 DB_USERNAME_TEST
、DB_PASSWORD_TEST
、DB_DATABASE_TEST
使用类似
的内容编辑.env
DB_DATABASE_TEST=test_db
DB_USERNAME_TEST=local
DB_PASSWORD_TEST=localpassword
确保配置已刷新:php artisan config:cache
您应该能够 运行 在您的新测试数据库上迁移数据库,如下所示:
php artisan migrate:refresh --database=mysql_test
对我来说,连接在开发环境中有效,但在生产环境中无效,所以经过大量搜索后,我不得不重建配置缓存,它成功了。我在laravel根目录下运行以下命令:
php artisan config:cache
我为这个错误苦苦挣扎了几个小时,并找到了适合我的解决方案。如果您无法使用 php artisan config:cache
删除缓存,因为它会在您 运行 之后抛出错误:
[InvalidArgumentException]
Database [] not configured
如果您确定连接参数正确,请尝试手动删除 bootstrap 缓存配置文件,这些文件位于 app/bootstrap/cache 文件夹中。 希望它能帮助别人。
确保参数
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD="password"
再发,
php artisan optimize:clear
if this error shows when you use the validation so it is simple :) just check all the validation rules and messages are written > correctly
对我来说,我遇到了这个错误,我通过在验证规则中只用逗号替换点来解决它。
我遇到了同样的问题,但是当我添加时
'default' => env('DB_CONNECTION', 'mysql'),
到database.php.It似乎已经解决了问题