我在 Intellij 中有一个包含多个数据源的 Grails 3 项目。尝试运行 Grails 命令:
schema-export --filename grails-app/conf/db/migration/operator/ddl.sql --datasource=operator
org.h2.jdbc.JdbcSQLException:用户名或密码错误 [28000-194]
完整的错误如下。有趣的是,连接不是到 h2 DB。application.yml 正在使用 PostgreSQL 数据库。
dataSources:
dataSource:
pooled: false
jmxExport: true
driverClassName: org.postgresql.Driver
username: user1
password: password1
dialect: net.kaleidos.hibernate.PostgresqlExtensionsDialect
operator:
pooled: false
jmxExport: true
driverClassName: org.postgresql.Driver
username: user2
password: password2
dialect: org.hibernate.dialect.PostgresqlExtensionsDialect
environments:
development:
server:
contextPath: '/@info.app.name@'
dataSource:
dbCreate: none
url: jdbc:postgresql://localhost:5432/mydb?currentSchema=schema1
datasources:
operator:
dbCreate: none
url: jdbc:postgresql://localhost1:5432/mydb?currentSchema=schema2
为什么会失败?
在环境“开发”中为 DataSource 'operator' 生成脚本到 .\build\ddl.sql 2017-06-08 14:35:14.598 错误 --- [
Thread-13] ogpdEmbeddedDatabaseShutdownHook:关闭数据源时出错org.h2.jdbc.JdbcSQLException: org.h2.message.DbException.getJdbcSQLException(DbException.java:345) 中的用户名或密码错误 [28000-194] org.h2.message.DbException.get(DbException.java: 179) 在 org.h2.message.DbException.get(DbException.java:144) 在 org.h2.engine.Engine.validateUserAndPassword(Engine.java) 的 org.h2.message.DbException.get(DbException.java:155) :336) 在 org.h2.engine.Engine.createSessionAndValidate(Engine.java:162) 在 org.h2.engine.Engine.createSession(Engine.java:137) 在 org.h2.engine.Engine.createSession(Engine. java:27) 在 org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:354) 在 org.h2.jdbc.JdbcConnection.(JdbcConnection.java:116) 在 org.h2.jdbc.JdbcConnection.(JdbcConnection.java :100) 在 org.h2.Driver.connect(Driver.java:69) 在 java.sql。DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153) at org.springframework.jdbc .datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144) at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196) at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159 ) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook.shutdownEmbeddedDatabase(EmbeddedDatabaseShutdownHook.groovy:87) 处。reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.springsource.loaded .ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 在 groovy。 lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027) 在 org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:925) 在 org.codehaus .groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908) 在 org.codehaus.groovy.runtime.InvokerHelper。在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke (ReflectiveInterceptor.java:1426) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) 在 groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) 在 org.codehaus.groovy.runtime。 groovy.lang 中的 metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)。MetaClassImpl.invokeMethod(MetaClassImpl.java:1027) at groovy.lang.Closure.call(Closure.java:414) at groovy.lang.Closure.call(Closure.java:430) at org.codehaus.groovy.runtime.DefaultGroovyMethods .each(DefaultGroovyMethods.java:2030) 在 org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015) 在 org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056) 在 org. grails.plugins.datasource.EmbeddedDatabaseShutdownHook.stop(EmbeddedDatabaseShutdownHook.groovy:38) at org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook.stop(EmbeddedDatabaseShutdownHook.groovy:62) at org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor. java:231) 在 org.springframework.context.support.DefaultLifecycleProcessor。在 org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:204) 的 org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.stop(DefaultLifecycleProcessor.java:365) 访问 $300(DefaultLifecycleProcessor.java:50) org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:120) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) at org.springframework.context.support.AbstractApplicationContext$2.run (AbstractApplicationContext.java:928)DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:204) at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:120) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) at org .springframework.context.support.AbstractApplicationContext$2.run(AbstractApplicationContext.java:928)DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:204) at org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:120) at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002) at org .springframework.context.support.AbstractApplicationContext$2.run(AbstractApplicationContext.java:928)