2017-08-07 32 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 
}