如何在 Docker 上更改 Db2 运行 的密码?
How to change the password of Db2 running on Docker?
我一直在 Docker 上使用 Db2,没有任何问题。今天说密码过期
[jcc][t4][2012][11248][4.27.25] Connection authorization failure
occurred. Reason: Password expired. ERRORCODE=-4214, SQLSTATE=28000
根据 this post 我需要 运行 docker exec -it Db2wh setpass new_password
其中 Db2wh 是容器名称,但我得到
OCI runtime exec failed: exec failed: container_linux.go:367: starting
container process caused: exec: "setpass": executable file not found
in $PATH: unknown
如何解决这个问题?我还尝试登录容器的控制台和 运行 setpass new_password
但找不到该命令。如何更改此密码?
解决方案是 shell 以 root 身份进入容器,然后 运行 命令 passwd db2inst1
(或者任何实例所有者的名称,默认为 db2inst1
).
该问题为对 Db2 仓库版本有效的命令提供了文档 link。然而,实际使用的映像是 Db2 社区版,这就是 setpass
命令无效的原因。
要更改密码过期间隔或禁用过期,请再次 shell 以 root 身份进入容器并 运行 任何与映像使用的发行版相关的命令。例如,使用 chage
命令和适当的选项。
我一直在 Docker 上使用 Db2,没有任何问题。今天说密码过期
[jcc][t4][2012][11248][4.27.25] Connection authorization failure occurred. Reason: Password expired. ERRORCODE=-4214, SQLSTATE=28000
根据 this post 我需要 运行 docker exec -it Db2wh setpass new_password
其中 Db2wh 是容器名称,但我得到
OCI runtime exec failed: exec failed: container_linux.go:367: starting container process caused: exec: "setpass": executable file not found in $PATH: unknown
如何解决这个问题?我还尝试登录容器的控制台和 运行 setpass new_password
但找不到该命令。如何更改此密码?
解决方案是 shell 以 root 身份进入容器,然后 运行 命令 passwd db2inst1
(或者任何实例所有者的名称,默认为 db2inst1
).
该问题为对 Db2 仓库版本有效的命令提供了文档 link。然而,实际使用的映像是 Db2 社区版,这就是 setpass
命令无效的原因。
要更改密码过期间隔或禁用过期,请再次 shell 以 root 身份进入容器并 运行 任何与映像使用的发行版相关的命令。例如,使用 chage
命令和适当的选项。