【问题标题】:CraftCMS with Redis: Failed to open redis DB connection (tcp://:, database=): 0 - Failed to parse address ":"CraftCMS with Redis: 无法打开 redis 数据库连接 (tcp://:, database=): 0 - 无法解析地址“:”
【发布时间】:2021-01-20 17:44:40
【问题描述】:

我在 CraftCMS 项目上安装了 yii2yii2-redis,但是当我启动该项目时,我收到一条错误消息:

数据库异常 – yii\db\Exception 无法打开 redis 数据库连接 (tcp://:, database=): 0 - 无法解析地址“:” 错误信息:无法解析地址“:”

我不太确定如何处理此错误。在我的 .env 文件中,我输入:

REDIS_HOST=localhost
REDIS_PORT=3306
REDIS_PASSWORD=
REDIS_KEY_PREFIX=craft

但这只会产生不同的错误:

数据库异常 – yii\db\Exception 无法打开 redis 数据库连接 (tcp://:3306, database=): 0 - php_network_getaddresses: getaddrinfo 失败:提供节点名或服务名,或未知 错误信息:php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known

帮助?

附加上下文:我没有为这个项目设置构建,所以我或多或少继承了这个 Redis 设置。

更新: 我深入研究了 Redis 设置的配置文件,发现 .env 变量和 .env 文件中存在的内容之间存在错误命名。现在我得到了一个完全不同的错误:

“从redis收到非法数据:redis命令为:SELECT 0”

【问题讨论】:

  • 您是否尝试过使用 REDIS_HOST=127.0.0.1?从环境变量到参数的转换是框架的一部分还是你正在这样做? github.com/yiisoft/yii2-redis 建议这是您可能正在实施的事情。可以和我们分享一下相关代码吗?
  • 嗨艾伦!实点。在阅读了您所写的内容后,我深入研究了 Redis 设置的配置文件,发现 .env 变量与 .env 文件中存在的内容之间存在错误命名。现在我得到一个完全不同的错误:“从 redis 收到非法数据:Redis 命令是:SELECT 0”
  • 该命令是否适用于 redis-cli?它还允许您仔细检查端口(3306 通常是 MySQL;6379 是默认的 Redis 端口)。
  • redis.io/commands/select 说“使用 Redis 集群时,不能使用 SELECT 命令”,这可能与您有关。
  • 感谢您的耐心和时间,艾伦。原来这是我的一个愚蠢的错误——我不小心删除了 Redis 数据库。创建一个新的可以立即解决问题。

标签: server redis craftcms


【解决方案1】:

请检查你的configuration matches你使用的环境变量。

【讨论】:

    【解决方案2】:

    原来我已经删除了 Redis 数据库(不记得是如何或何时删除的),因此创建一个新数据库(设置了正确的 .env 变量)立即解决了问题。

    哇哦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-15
      • 2021-02-15
      • 1970-01-01
      • 2018-04-09
      • 2015-02-06
      • 1970-01-01
      • 2018-07-12
      相关资源
      最近更新 更多