gpt4 book ai didi

mysql - java.sql.SQLNonTransientConnectionException : Public Key Retrieval is not allowed in jhipster docker production for monolithic project

转载 作者:行者123 更新时间:2023-12-02 19:51:43 45 4
gpt4 key购买 nike

在运行 docker up 时,我收到“java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed”。我正在使用 jhipster 整体项目。我已经尝试过“allowPublicKeyRetrieval = true”解决方案。如果我正在使用这意味着我再次得到一个更多错误,例如“用户'root'@'localhost'的访问被拒绝。请帮助我解决这个错误。我从1周开始就遇到了同样的问题。

这是我的 .yo-rc.json

{
"generator-jhipster": {
"promptValues": {
"packageName": "com.niche.ng",
"nativeLanguage": "en"
},
"jhipsterVersion": "6.5.0",
"applicationType": "monolith",
"baseName": "Nichehands",
"packageName": "com.niche.ng",
"packageFolder": "com/niche/ng",
"serverPort": "8080",
"authenticationType": "session",
"cacheProvider": "ehcache",
"enableHibernateCache": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"serviceDiscoveryType": false,
"buildTool": "maven",
"enableSwaggerCodegen": false,
"rememberMeKey": "b9f603400b9bd1cf887c6efbba0e8e3822cf735d083441758e81667adef95db8af19462970cfece6048f0be25cc",
"embeddableLaunchScript": false,
"useSass": true,
"clientPackageManager": "npm",
"clientFramework": "angularX",
"clientTheme": "none",
"clientThemeVariant": "",
"testFrameworks": [],
"jhiPrefix": "jhi",
"entitySuffix": "",
"dtoSuffix": "DTO",
"otherModules": [],
"enableTranslation": true,
"nativeLanguage": "en",
"languages": [
"en",
"hi",
"ta",
"te"
],
"blueprints": []
}
}

最佳答案

可能的原因:

  • 您想以 root 用户身份使用 db 连接,这是一个坏主意,因为 root 可以访问具有所有权限的所有数据库表。在某些情况下,您希望将 db 中特定资源的访问权限添加到您的应用程序中。
  • 您正在为 DB
  • 使用无密码连接

    可能的解决方案:
  • 例如在您的 db shell 中为数据库添加用户(无 root):
    CREATE USER 'apppuser'@'localhost' IDENTIFIED BY 'topsecret';CREATE USER 'apppuser'@'%' IDENTIFIED BY 'topsecret';GRANT SELECT ON dbname.* to 'apppuser'@'localhost';GRANT INSERT ON dbname.* to 'apppuser'@'localhost';GRANT UPDATE ON dbname.* to 'apppuser'@'localhost';GRANT DELETE ON dbname.* to 'apppuser'@'localhost';GRANT SELECT ON dbname.* to 'apppuser'@'%';GRANT INSERT ON dbname.* to 'apppuser'@'%';GRANT UPDATE ON dbname.* to 'apppuser'@'%';GRANT DELETE ON dbname.* to 'apppuser'@'%';
    然后更改您的 docker-compose 凭据
  • 与第一个有关。在 docker-compose 文件路径中创建 .env 文件并添加属性:
    DBUSER='apppuser'DBPASSWORD='topsecret'
    然后在您的 docker-compose 文件中将此变量添加为 ${DBUSER} and ${DBPASSWORD} .
  • 与第二点有关。如果您在使用 .env 文件时遇到问题并且使用的是 linux 系统,请在 /etc/environment 中添加您的环境属性。与 .env 文件中的方式相同。请记住,您不能使用带有“#”的属性,因为它将被视为注释。

  • 请发送您的 docker-compose 文件和 production.yml 文件。

    关于mysql - java.sql.SQLNonTransientConnectionException : Public Key Retrieval is not allowed in jhipster docker production for monolithic project,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60208985/

    45 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com