yii2 redis错误:Excepción de la base de datos – yii\db\Exception:Error de Redis: NOAUTH Se requiere autenticación.

  1. pregunta

Cuando se usa el marco yii2, se deben usar las operaciones de redis y los datos relacionados con redis se pueden configurar en main.php y main-local.php, de la siguiente manera:

Configuración relacionada con Redis en main.php

 'cache' => [
    'class' => 'yii\redis\Cache',
    'redis' => [
        'hostname' => '192.168.1.1111',
        'port' => 6389,
        'database' => 0,
        'password' => '123456'
    ],
],

Configuración relacionada con Redis en main-local.php

 'cache' => [
    'class' => 'yii\redis\Cache',
    'redis' => [
        'hostname' => '192.168.1.1111',
        'port' => 6389,
        'database' => 0,
        'password' => 'xxxxx'
    ],
],

La configuración de caché en main-local.php sobrescribirá la configuración de caché en main.php Al ejecutar el proyecto, puede ocurrir un error:

Redis error: NOAUTH Authentication required.
  1. Análisis de errores y soluciones.

(1) Si la configuración es correcta

Puede ser causado por el error de configuración de redis correspondiente en main-local.php, verifique la configuración de reids correspondiente: el nombre de host, el puerto, la base de datos y la contraseña están configurados correctamente

Solución:

Confirme nuevamente si la configuración de redis es correcta, reinicie el programa redis después de verificar y vuelva a visitar el proyecto para ver el resultado

(2) ¿Se inicia redis?

Verifique si redis está iniciado y si puede ingresar al servidor redis

Solución:

Descargue reids-server, redis-cli, después de iniciar reids-server, ejecute el comando: redis-cli -h {ip} -p {port} -a{password} para ver si puede ingresar redis

(3) La contraseña no es válida

Existe tal problema: cuando el proyecto se ejecuta en línea, cuando se usa el redis del servicio en la nube , solo se puede acceder a algunos redis del servicio en la nube en la intranet correspondiente (por ejemplo: Amazon aws ), y no hay contraseña (porque solo se puede acceder en la red interna) acceso a la red, por lo que cuando aws abre redis, no hay contraseña), y solo se puede configurar y acceder a través del nodo terminal proporcionado. Por lo tanto, al configurar el proyecto, no hay una contraseña configurada , como sigue:

Configuración relacionada con Redis en main-local.php

 'cache' => [
    'class' => 'yii\redis\Cache',
    'redis' => [
        'hostname' => 'xxx', //亚马逊aws redis终端节点
        'port' => 6389,
        'database' => 0,
        //'password' => '',  // 不配置密码,或者密码为空
    ],
],

En este momento accede al proyecto y aparece:

Redis command was: AUTH 123456
La razón de esto es: la contraseña en la configuración de redis correspondiente en main.php es 123456, que cubre la contraseña en main-local.php ¿ Por qué sucede esto? Esto se debe a que: en el archivo de entrada index.php de yii2, se usa
la función yii\helpers\ArrayHelper:: merge ()

Archivo de entrada index.php código:

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require __DIR__ . '/../../vendor/autoload.php';
require __DIR__ . '/../../vendor/yiisoft/yii2/Yii.php';
require __DIR__ . '/../../common/config/bootstrap.php';
require __DIR__ . '/../config/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
    require __DIR__ . '/../../common/config/main.php',
    require __DIR__ . '/../../common/config/main-local.php',
    require __DIR__ . '/../config/main.php',
    require __DIR__ . '/../config/main-local.php'
);

(new yii\web\Application($config))->run();
Sobrescribirá los atributos existentes en main.php en main-local.php , pero si una clave no existe en una matriz, se agregará directamente, y si el valor correspondiente a la clave está vacío, se usará en main.php Correspondiente al valor de la clave, la configuración final en este momento es 'contraseña' => '123456', usando la 'contraseña' en main.php

Solución:

En la configuración de main.php, elimine el elemento de contraseña .

Supongo que te gusta

Origin blog.csdn.net/zhoupenghui168/article/details/131324327
Recomendado
Clasificación