"Access denied for user ''@'localhost' to database 'forge"随机出现
"Access denied for user ''@'localhost' to database 'forge" appears randomly
我的数据库有搜索功能,但有时我会收到此消息:
[2016-02-04 07:03:18] local.ERROR: PDOException: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'forge' in C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:55
Stack trace:
#0 C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php(55): PDO->__construct('mysql:host=loca...', 'forge', '', Array)
...
在十次调用中的一次中,我收到了这条 500 错误消息,但我不知道为什么。其他调用给出了正确的结果。
.env
APP_ENV=local
APP_DEBUG=true
APP_KEY=bJM6O0MnrIPaTNwKKOqNJkGinRDv1fnc
DB_HOST=localhost
DB_DATABASE=reko
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
搜索功能:
public function search(Modul $modul, Request $request)
{
$question = Question::whereModulId($modul->id)
->where('value', 'LIKE', '%' . $request->get('keywords') . '%')
->with('tags')
->whereHas('exams', function ($query) use ($request) {
$query->where('date', '>=', $request->get('year').'-01-01');
});
if (!$request->get('parent'))
$question->where('type', '<>', 'parent');
if (!$request->get('own'))
$question->where('type', '<>', 'own');
if (!$request->get('normal'))
$question->where('type', '<>', 'normal');
if ($request->get('answered'))
$question->has('answers');
return $question->paginate(10);
}
database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
我没有修改 database.php 文件,所有其他调用都很好用。
这似乎包含大部分答案:
记住不要像其中一位用户所说的那样编辑您的核心文件。
只需进行安全检查,清除缓存,就可以了。
希望对您有所帮助。
作为解决方法,您可以添加到您的 DB forge 帐户并获得所有权限。
尝试 php artisan clear:cache
清除您的缓存并重新配置您的缓存 php artisan config:cache
它可能适合您。
请运行这个命令
php artisan cache:clear
然后
php artisan config:cache
我曾经遇到过同样的问题。我发现我的默认连接设置为 PostgreSQL 而不是 MySQL 所以我在 database.php
中更改了我的默认连接
'default' => env('DB_CONNECTION', 'mysql'),
否则请将以下内容添加到您的 .env
DB_CONNECTION=mysql
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=
尝试在您的 .env 文件中添加剩余的方法
我们在托管时经常不得不面对这个错误。
您应该看到您已授予 特权用户 对主机中 数据库 的权限。
第一
首先我要看看数据库名称是否正确
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zhara_demo
DB_USERNAME=zhara_admin
DB_PASSWORD=zhara@2021
或
- 尝试
php artisan clear:cache
清除缓存并重新配置
- 您的缓存
php artisan config:cache
它可能适合您。
我的数据库有搜索功能,但有时我会收到此消息:
[2016-02-04 07:03:18] local.ERROR: PDOException: SQLSTATE[HY000] [1044] Access denied for user ''@'localhost' to database 'forge' in C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:55
Stack trace:
#0 C:\xampp\htdocs\reko\api\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php(55): PDO->__construct('mysql:host=loca...', 'forge', '', Array)
...
在十次调用中的一次中,我收到了这条 500 错误消息,但我不知道为什么。其他调用给出了正确的结果。
.env
APP_ENV=local
APP_DEBUG=true
APP_KEY=bJM6O0MnrIPaTNwKKOqNJkGinRDv1fnc
DB_HOST=localhost
DB_DATABASE=reko
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
搜索功能:
public function search(Modul $modul, Request $request)
{
$question = Question::whereModulId($modul->id)
->where('value', 'LIKE', '%' . $request->get('keywords') . '%')
->with('tags')
->whereHas('exams', function ($query) use ($request) {
$query->where('date', '>=', $request->get('year').'-01-01');
});
if (!$request->get('parent'))
$question->where('type', '<>', 'parent');
if (!$request->get('own'))
$question->where('type', '<>', 'own');
if (!$request->get('normal'))
$question->where('type', '<>', 'normal');
if ($request->get('answered'))
$question->has('answers');
return $question->paginate(10);
}
database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
我没有修改 database.php 文件,所有其他调用都很好用。
这似乎包含大部分答案:
记住不要像其中一位用户所说的那样编辑您的核心文件。 只需进行安全检查,清除缓存,就可以了。
希望对您有所帮助。
作为解决方法,您可以添加到您的 DB forge 帐户并获得所有权限。
尝试 php artisan clear:cache
清除您的缓存并重新配置您的缓存 php artisan config:cache
它可能适合您。
请运行这个命令
php artisan cache:clear
然后
php artisan config:cache
我曾经遇到过同样的问题。我发现我的默认连接设置为 PostgreSQL 而不是 MySQL 所以我在 database.php
中更改了我的默认连接'default' => env('DB_CONNECTION', 'mysql'),
否则请将以下内容添加到您的 .env
DB_CONNECTION=mysql
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=
尝试在您的 .env 文件中添加剩余的方法
我们在托管时经常不得不面对这个错误。
您应该看到您已授予 特权用户 对主机中 数据库 的权限。
第一
首先我要看看数据库名称是否正确
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=zhara_demo
DB_USERNAME=zhara_admin
DB_PASSWORD=zhara@2021
或
- 尝试
php artisan clear:cache
清除缓存并重新配置 - 您的缓存
php artisan config:cache
它可能适合您。