2017-08-07 101 views
1

我一直在尝试从Grails项目连接到MySQL数据库,但我还没有管理它。无法连接Grails 3.3与MySQL数据库

我工作的IntelliJ IDEA 17以下版本:

| Grails Version: 3.3.0.RC1 
| Groovy Version: 2.4.12 
| JVM Version: 1.8.0_131 

的build.gradle

dependencies{ 
    compile files ("lib/mysql-connector-java-5.1.43-bin") 
} 

application.yml

hibernate: 
    cache: 
     queries: false 
     use_second_level_cache: false 
     use_query_cache: false 
dataSource: 
    pooled: true 
    jmxExport: true 
    driverClassName: com.mysql.jdbc.Driver 
    dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
    username: root 
    password: '' 

environments: 
    development: 
     dataSource: 
      dbCreate: create-drop 
      url: jdbc:mysql:3306//localhost/mydatabase 
    test: 
     dataSource: 
      dbCreate: update 
      url: jdbc:mysql:3306//localhost/mydatabase 
    production: 
     dataSource: 
      dbCreate: none 
      url: jdbc:mysql:3306//localhost/mydatabase 

个错误

"C:\Program Files\Java\jdk1.8.0_131\bin\java" -XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:CICompilerCount=3 -Djline.WindowsTerminal.directConsole=false -Dfile.encoding=UTF-8 -classpath C:\Users\Vaggelis\AppData\Local\Temp\classpath.jar org.grails.cli.GrailsCli run-app 
|Resolving Dependencies. Please wait... 

CONFIGURE SUCCESSFUL 

Total time: 3.824 secs 
|Running application... 
2017-08-07 19:42:52.921 ERROR --- [   main] o.a.tomcat.jdbc.pool.ConnectionPool  : Unable to create initial connections of pool. 

java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver from ClassLoader:[email protected];ClassLoader:[email protected] 

2017-08-07 19:42:55.391 ERROR --- [   main] o.h.engine.jdbc.spi.SqlExceptionHelper : Unable to load class: com.mysql.jdbc.Driver from ClassLoader:[email protected];ClassLoader:[email protected] 
2017-08-07 19:42:55.405 ERROR --- [   main] o.s.b.f.s.DefaultListableBeanFactory  : Destroy method on bean with name 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor' threw an exception 

2017-08-07 19:42:55.431 ERROR --- [   main] o.s.boot.SpringApplication    : Application startup failed 

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'methodValidationPostProcessor' defined in class path resource [org/springframework/boot/autoconfigure/validation/ValidationAutoConfiguration.class]: Unsatisfied dependency expressed through method 'methodValidationPostProcessor' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateDatastoreServiceRegistry': Cannot resolve reference to bean 'hibernateDatastore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateDatastore': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is org.hibernate.exception.GenericJDBCException: Unable to check JDBC Connection auto-commit in preparation for DDL execution 

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateDatastoreServiceRegistry': Cannot resolve reference to bean 'hibernateDatastore' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateDatastore': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is org.hibernate.exception.GenericJDBCException: Unable to check JDBC Connection auto-commit in preparation for DDL execution 

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.grails.orm.hibernate.HibernateDatastore]: Constructor threw exception; nested exception is org.hibernate.exception.GenericJDBCException: Unable to check JDBC Connection auto-commit in preparation for DDL execution 

Caused by: org.hibernate.exception.GenericJDBCException: Unable to check JDBC Connection auto-commit in preparation for DDL execution 

FAILURE: Build failed with an exception. 

What went wrong: 
Execution failed for task ':bootRun'. 
Process 'command 'C:\Program Files\Java\jdk1.8.0_131\bin\java.exe'' finished with non-zero exit value 1 

Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
Error | 
Failed to start server (Use --stacktrace to see the full trace) 

Process finished with exit code 1 

的MySQLConnector被正确导入,这样的地方我一定是进了错误的数据的数据源里面。

+0

的可能的复制[Grails的3 - 摇篮依赖条件的Mysql连接器](https://stackoverflow.com/questions/33386020/grails-3-gradle-dependecies-mysql-connector) –

+0

试图添加Grails 3.0而不是默认推荐,仍然是一样的 –

+0

在grails中3方言是在hibernate下指定的部分而不是数据源 –

回答

1

我使用这个配置和它的正常工作:

的build.gradle

dependencies { 
    runtime 'mysql:mysql-connector-java:5.1.29' 
} 

application.yml

hibernate: 
    cache: 
     queries: false 
     use_second_level_cache: true 
     use_query_cache: false 
     region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory 


dataSource: 
    pooled: true 
    jmxExport: true 


environments: 
    development: 
     dataSource: 
      dbCreate: create-drop 
      url: "jdbc:mysql://localhost:3306/mydb?autoReconnect=true" 
      driverClassName: "com.mysql.jdbc.Driver" 
      dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
      username: "yyyyy" 
      password: "xxxxx" 
+0

嗯,我尝试删除数据源的初始化并将它们添加到像您一样的开发/数据源,但是我收到错误“运行Grails CLI时出错:此处不允许映射值”。不太确定它是如何工作的,但我想我会去H2分贝,因为它工作正常 –

+0

复制/粘贴后缩进。我已经纠正它,检查它现在是否有效。 –

1

Grails的3方言下指定休眠部分,不在数据源下。

hibernate: 
    dialect: org.hibernate.dialect.MySQL5InnoDBDialect 
1

我在Grails中固定的类似问题3.2.9项目由去除从我的两个abstract领域类的tablePerConcreteClass映射:

static mapping = { 
    tablePerConcreteClass true 
}