laravel - laravel.log 上不断发生错误“会话表上的连接被拒绝”
问题描述
这是我第一次使用 redis 设置 laravel 服务器。PHP 工匠迁移工作正常并成功设置数据库表。但是,我注意到 laravel.log 上记录了以下错误(大约每 10 秒!)。这很奇怪,因为还没有人访问该站点。我多次检查了 .env 中的密码和主机名。任何想法?
local.ERROR: SQLSTATE[HY000] [2002] Connection denied (SQL: select * from
sessions
whereid
= xxxxx limit 1) {"exception":"[object] (Illuminate\Database\QueryException(code: 2002): SQLSTATE[HY000] [2002]在 /var/www/html/web/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671 [stacktrace] 处的连接被拒绝(SQL:select * fromsessions
where = xxxx limit 1)...id
local.ERROR:调试栏异常:SQLSTATE[HY000] [2002] 连接被拒绝(SQL:select * fromsessions
whereid
= xxxxx limit 1)
.env
DB_CONNECTION=mysql
DB_HOST=hostname
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=username
DB_PASSWORD=pass
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
QUEUE_CONNECTION=sync
SESSION_DRIVER=redis
SESSION_LIFETIME=120
REDIS_HOST=hostname
REDIS_PASSWORD=null
REDIS_PORT=6379
REDIS_CLIENT=phpredis
...
DEBUGBAR_ENABLED=false
数据库.php
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'),
],
],
解决方案
原来默认的 .env 是从触发上述错误的“某事”中使用的。“.env.prd”是我期望使用的(当然,如果使用 .env.prd,我确实与工匠核实过)。我修改了 bootstrap/app.php 并将 .env.prd 设为默认值,现在它停止生成错误。
推荐阅读
- c++ - .clang-format:避免在@code 和@endcod 之间进行格式化
- npm - 当我运行 npm install gulp-sass 时出现此错误?
- typescript - TypeError:无法读取未定义的属性“实例”
- python - 代码运行器图标未显示在 Visual Studio 代码中
- javascript - 如何将 uuid 值传递给使用 JavaScript 动态添加的表单的所有输入字段?
- css - Bootstrap 插件破坏了我的 CSS
- c++ - Xcode 总是重建
- java - 使用 EmailConnector (Wso2 Integration Studio) 检索的二进制附件出现问题
- html - 当我将嵌入式 CSS 转换为内联 CSS 时,媒体查询不会覆盖其类
- extjs - Ext js 7 现代折叠/调整面板