如何更改 h2 数据库密码?

Posted

技术标签:

【中文标题】如何更改 h2 数据库密码?【英文标题】:How to change h2 db password? 【发布时间】:2018-12-24 03:25:12 【问题描述】:

我无法更改 H2 db 的密码。我试着用命令来做:

chpasswd.sh --db-url "jdbc:h2:repository/database/WSO2CARBON_DB" --db-driver org.h2.Driver --db-username ... --db-password ... --username ... --new-password ...

当我启动命令时,它成功结束。 但密码没有改变。 IS 不是以新密码开头,而是以旧密码开头。 如何修改H2 db的密码?

【问题讨论】:

【参考方案1】:

WSO2产品提供的“chpasswd.sh”脚本是修改产品的管理员密码,与h2数据库密码无关。

如果您尝试更改 H2 数据库密码,则必须登录到 h2 控制台并更新 db 用户密码。以下是步骤。

您可以下载 h2 控制台表单[1]。之后解压缩并转到 h2/bin 文件夹。然后使用以下命令启动 h2 控制台。

sh h2.sh

现在您可以在浏览器 (http://localhost:8082) 中访问 h2 控制台,并使用 db 路径和当前凭据访问 db。然后运行以下 SQL 来更新数据库密码。

ALTER USER wso2carbon SET PASSWORD 'NEW_PASSWORD'

此更改后,由于数据库密码更新,WSO2 产品将无法启动。您必须在“repository/conf/datasources/master-datasources.xml”文件中更新数据库密码。

另外,值得一提的是,不建议将 H2 用于生产中的 WSO2 产品。

[1]http://www.h2database.com/h2-2017-06-10.zip

【讨论】:

我尝试更改不是 WSO2 IS 的管理员用户密码,我尝试更改 H2 数据库密码 chpasswd 脚本是修改管理员密码,与h2数据库密码无关。要更改 H2 数据库密码,您必须登录到 h2 控制台并尝试运行 alter user set password 选项。 h2database.com/html/grammar.html#alter_user_set_password 更新了 h2 db 密码更改要求的答案。 我在 IS 和 API-M 服务器上更改了密码。我在 carbon.xml 文件中取消了 的注释,之后我可以通过 web 连接到 WSO2 的 H2 配置,我没有启动 H2 控制台。但我无法连接到 EI 和 BPS 服务器上的 H2。我执行相同的步骤,但它不起作用。我在 carbon.xml 文件中取消了 的注释,但是我无法通过 Web 连接到 H2 配置,我可以通过 H2 控制台连接到它,但是 H2 控制台会创建其他数据库文件并且不会更改 WSO2 H2 数据库中的 H2 密码.怎么了? 检查您在H2控制台中使用的DB文件名是否正确。例如,如果您使用“WSO2CARBON_DB.h2.db”而不是“WSO2CARBON_DB”,它将失败。此外,如果数据库文件被另一个进程锁定,它可能会失败。【参考方案2】:

您可以使用以下命令更改H2数据库的管理员用户密码。

sh chpasswd.sh --db-url "jdbc:h2:repository/database/WSO2CARBON_DB" --db-driver "org.h2.Driver" --db-username "wso2carbon" --db-password "wso2carbon" --username "admin" --new-password "admin123"

sh chpasswd.sh --db-url "jdbc:h2:repository/database/WSO2CARBON_DB" --username "admin" --new-password "admin123"

如果您仍然遇到同样的问题,请提及您尝试更改管理员密码的 WSO2 产品和产品版本。

【讨论】:

我使用了这个命令,它没有帮助。正如我在启动命令时所写的那样,它成功结束。然后我在 repository/conf/security/master-datasource.xml 中更改 WSO2_CARBON_DB、WSOAM_DB、WSO2_MB_STORE_DB 的密码。 IS 以错误开头:用户名或密码错误。 IS 不是以新密码开头,而是以旧密码开头。我使用的是 5.6.0 我没有 chpasswd.sh ,我猜那是 WSO 特有的,而不是一般的 H【参考方案3】:

我假设您正在关注此document。请注意,这仅在您不知道管理员密码并需要重置时使用。如果你知道当前密码,你可以关注this。

默认情况下,WSO2 IS 带有一个 LDAP 用户存储。您可以通过检查 [IS_HOME]/repository/conf/user-mgt.xml 中的“UserStoreManager”来检查活动用户存储。更多信息here。

如果是JDBC,你必须从[IS_HOME]/repository/conf/datasources/master-datasources.xml中通过检查user-mgt.xml中的dataSource名称找到相关的DB,并按照@987654324中的步骤操作@。

如果是 LDAP,您可能需要通过 Apache Directory Studio 等工具连接到该 ldap 来更改密码。

【讨论】:

是的,我尝试使用官方文档更改密码和yenlo指南,但没有帮助。

以上是关于如何更改 h2 数据库密码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据库 H2 中更改没有时间的字段日期时间

H2 - 如何创建将行更改记录到另一个表的数据库触发器?

如何更改名称为空的sql用户的密码?

H2:如何通过更改 h2 源代码来更改 csvread 功能

H2 数据库,关闭时不保存更改

弹簧靴和 h2。无法更改数据库名称