我正在努力使用本地 MySQL 数据库(仅在 WAMP 上)设置我的 Grails 3.1.0 应用程序,但我从现有来源尝试过的任何东西都不起作用。
以下解决方案都不适合我:
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:
runtime 'mysql:mysql-connector-java:5.1.36'
非解决方案 2
类似,但从 this Github starter project 复制 application.yml 和 build.gradle 文件.
非解决方案 3
正在下载 MySQL connector jar并按照以下方式根据此答案在 build.gradle 文件中引用它:
dependencies {
...
compile files('libs/a.jar')
}
每次尝试后,我都会运行 grails clean
并在 IntelliJ 中重建。每种方法都会产生以下堆栈跟踪:
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:
dependencies {
runtime 'mysql:mysql-connector-java:5.1.20'
}
现在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 个数据源
关于mysql - 使用 MySQL 设置 Grails 3.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36206683/