首页 > 解决方案 > laravel.log 上不断发生错误“会话表上的连接被拒绝”

问题描述

这是我第一次使用 redis 设置 laravel 服务器。PHP 工匠迁移工作正常并成功设置数据库表。但是,我注意到 laravel.log 上记录了以下错误(大约每 10 秒!)。这很奇怪,因为还没有人访问该站点。我多次检查了 .env 中的密码和主机名。任何想法?

local.ERROR: SQLSTATE[HY000] [2002] Connection denied (SQL: select * from sessionswhere id= 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 * from sessionswhere = xxxx limit 1)... idlocal.ERROR:调试栏异常:SQLSTATE[HY000] [2002] 连接被拒绝(SQL:select * from sessionswhere id= 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'),
    ],

],

标签: laravelredis

解决方案


原来默认的 .env 是从触发上述错误的“某事”中使用的。“.env.prd”是我期望使用的(当然,如果使用 .env.prd,我确实与工匠核实过)。我修改了 bootstrap/app.php 并将 .env.prd 设为默认值,现在它停止生成错误。


推荐阅读