【问题标题】:How can I connect to a crashed openshift container/pod如何连接到崩溃的 openshift 容器/pod
【发布时间】:2018-06-16 01:08:27
【问题描述】:

我的 openshift 数据库崩溃了,现在 mysql 应用程序不再启动。容器现在尝试在循环中创建一个 pod。但是每次登录问题都会失败:

  • 版本:'5.7.16' 套接字:'/tmp/mysql.sock' 端口:0 MySQL 社区服务器 (GPL)
  • 2018-01-06T11:02:10.843097Z 2 [注意] 访问 拒绝用户'UNKNOWN_USER'@'localhost'(使用密码:否) ---> 11:02:10 MySQL启动成功 ---> 11:02:10 设置密码 ...
  • 2018-01-06T11:02:10.864906Z 3 [注意] 用户 'root'@'localhost' 的访问被拒绝(使用密码:否) 错误 1045 (28000): 拒绝用户 'root'@'localhost' 的访问(使用 密码:否)

在安装过程中,我使用 MYSQL_ROOT_PASSWORD 设置了 root 密码值,但是在连接到 mysql -u root 时,我没有要求输入密码。所以我不确定配置使用的是哪种密码。

我已经尝试在环境值上重置密码,但没有任何效果。

即使容器没有运行,有没有办法连接到 mysql 配置?

【问题讨论】:

    标签: mysql crash openshift


    【解决方案1】:

    您可以针对部署配置运行oc debug。这将启动实例的 pod,但不会真正启动数据库,而是为您提供运行容器中 shell 的命令提示符。确保首先使用 oc scale 将现有实例缩减为 0 个副本。这在使用ReadWriteOnce 类型的持久卷的情况下是必需的。修复任何内容后,退出 shell,然后缩减到 1 个副本。

    请注意,环境变量仅定义首次启动时设置的密码,之后它们的值无关紧要,但会记录使用的密码。如果您在部署配置中覆盖了环境变量,那么您就丢失了使用的记录,但数据库预期的密码不会改变。

    此外,在数据库容器内部,无需密码即可连接到数据库我认为对于 MySQL 来说是正常的,因为在这种情况下它会默认使用本地 UNIX 侦听器套接字。从 pod 外部连接仍然需要密码。

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2022-10-13
      • 2019-05-31
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 2021-11-07
      相关资源
      最近更新 更多