Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql java.sql.SQLNonTransientConnectionException:在jhipster docker产品中,不允许为单片项目检索公钥_Mysql_Docker_Angular6_Jhipster_Production - Fatal编程技术网

Mysql java.sql.SQLNonTransientConnectionException:在jhipster docker产品中,不允许为单片项目检索公钥

Mysql java.sql.SQLNonTransientConnectionException:在jhipster docker产品中,不允许为单片项目检索公钥,mysql,docker,angular6,jhipster,production,Mysql,Docker,Angular6,Jhipster,Production,在运行docker up时,我得到了“java.sql.SQLNonTransientConnectionException:不允许检索公钥”。我使用的是jhipster单片工程。我已经尝试了“allowPublicKeyRetrieval=true”解决方案。如果我再次使用该解决方案,意味着我又会收到一个错误,如“拒绝用户“root”的访问@localhost”。请帮助我解决此问题解决这个错误。我从一周开始就遇到了同样的问题 这是我的.yo-rc.json { "generator-jhip

在运行docker up时,我得到了“java.sql.SQLNonTransientConnectionException:不允许检索公钥”。我使用的是jhipster单片工程。我已经尝试了“allowPublicKeyRetrieval=true”解决方案。如果我再次使用该解决方案,意味着我又会收到一个错误,如“拒绝用户“root”的访问@localhost”。请帮助我解决此问题解决这个错误。我从一周开始就遇到了同样的问题

这是我的.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": []
}
}
可能的原因:

您想使用db连接作为root用户,这是一个坏主意,因为root用户拥有访问所有数据库表的所有权限。在某些情况下,您希望将对数据库中特定资源的访问添加到应用程序中

您正在使用DB的无密码连接

可能的解决办法:

为数据库添加用户无根,例如在db shell中:

创建由“topsecret”标识的用户“apppuser”@“localhost”

创建由“topsecret”标识的用户“apppuser”@“%”

将dbname.*上的SELECT授予“apppuser”@“localhost”

将dbname.*上的INSERT授予'apppuser'@'localhost'

将dbname.*的更新授予'apppuser'@'localhost'

将dbname.*上的DELETE授予'apppuser'@'localhost'

将dbname.*上的SELECT授予“apppuser”@“%”

将dbname.*上的INSERT授予“apppuser”@“%”

将dbname.*上的更新授予“apppuser”@“%”

将dbname.*上的DELETE授予“apppuser”@“%”

然后更改docker compose凭据

和第一个有关。在docker compose文件路径中创建.env文件并添加属性:

DBUSER='apppuser'

DBPASSWORD='topsecret'

然后在docker compose文件中,将此变量添加为${DBUSER}和${DBPASSWORD}

与第二点有关。如果您在使用.env文件时遇到问题,并且正在使用linux系统,请以与.env文件相同的方式在/etc/environment中添加环境属性。请记住,您不能将属性用于,因为它将被视为注释


请发送docker compose文件和production.yml文件。

我将此添加为注释,因为此错误似乎是由多种不同的原因造成的,每种原因都与开发人员的项目有关。我的问题源于开发人员将用户cred硬编码到DatabaseConfiguration.java类中,而不是使用从application-dev.yml传入的cred。我正在尝试升级一个非常旧的JHipster项目,因为我继承了代码,所以我不得不去探索。希望这有帮助!嘿@StackUser你解决问题了吗?我也有同样的问题,请分享解决方案!谢谢