使用MySQL设置Grails 3.1.0 [英] Setting up Grails 3.1.0 with MySQL
问题描述
我正在努力使用本地MySQL数据库(仅在WAMP上)设置Grails 3.1.0应用程序,而我从现有资源中尝试的任何方法都无法正常工作.
I'm struggling to set up my Grails 3.1.0 application with a local MySQL database (just on WAMP) and nothing I've tried from existing sources are working.
以下任何一种解决方案都不适合我:
None of the following solutions worked for me:
Non-Solution 1
grails-app/conf/application.yml:
grails-app/conf/application.yml:
dataSource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
username: sa
password:
environments:
development:
dataSource:
dbCreate: create-drop
url: jdbc:mysql://liveip.com/liveDb
build.gradle:
build.gradle:
runtime 'mysql:mysql-connector-java:5.1.36'
非解决方案2
类似,但从此文件中复制application.yml和build.gradle文件Github入门项目.
非解决方案3
下载 MySQL连接器jar 并在build.gradle文件中引用它按照以下方式根据此答案:
Downloading the MySQL connector jar and referencing it in the build.gradle file according to this answer in the following way:
dependencies {
...
compile files('libs/a.jar')
}
每次尝试后,我运行grails clean
并在IntelliJ中重建.每种方法都会导致以下堆栈跟踪:
After each attempt, I've run grails clean
and rebuilt in IntelliJ. Each method results in the following stack trace:
ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - Unable to create initial connections of pool.
java.sql.SQLException: Unable to load class: com.mysql.jdbc.Driver" from ClassLoader:sun.misc.Launcher$AppClassLoader@736e9adb;ClassLoader:sun.misc.Launcher$AppClassLoader@736e9adb
...
Caused by: java.lang.ClassNotFoundException: Unable to load class: com.mysql.jdbc.Driver" from ClassLoader:sun.misc.Launcher$AppClassLoader@736e9adb;ClassLoader:sun.misc.Launcher$AppClassLoader@736e9adb
at org.apache.tomcat.jdbc.pool.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:56) ~[tomcat-jdbc-8.0.30.jar:na]
...
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_05]
推荐答案
这是我的
build.gradle:
build.gradle:
dependencies {
runtime 'mysql:mysql-connector-java:5.1.20'
}
现在application.yml:
Now application.yml:
dataSources:
dataSource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
username: username
password: opendoor_policy
nextdbsource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
username: username
password: opendoor_policy
url: jdbc:mysql://localhost:3306/nextdbsource?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8
dbCreate: update
environments:
development:
dataSources:
dataSource:
dbCreate: update
url: jdbc:mysql://localhost:3306/db1?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8
test:
dataSources:
dataSource:
dbCreate: update
url: jdbc:mysql://localhost:3306/db1?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8
production:
dataSources:
dataSource:
dbCreate: update
url: jdbc:mysql://localhost:3306/db1?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8
properties:
jmxEnabled: true
initialSize: 5
maxActive: 50
minIdle: 5
maxIdle: 25
maxWait: 10000
maxAge: 600000
timeBetweenEvictionRunsMillis: 5000
minEvictableIdleTimeMillis: 60000
validationQuery: SELECT 1
validationQueryTimeout: 3
validationInterval: 15000
testOnBorrow: true
testWhileIdle: true
testOnReturn: false
jdbcInterceptors: ConnectionState
defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
---
对我有用,它设置了2个数据源
that works for me and it sets up 2 data sources
这篇关于使用MySQL设置Grails 3.1.0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!