mysql - 使用 MySQL 设置 Grails 3.1.0

标签 mysql grails jdbc

我正在努力使用本地 MySQL 数据库(仅在 WAMP 上)设置我的 Grails 3.1.0 应用程序,但我从现有来源尝试过的任何东西都不起作用。

以下解决方案都不适合我:

Non-Solution 1

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/

相关文章:

mysql - 如何返回一个表中的行,其字段包含另一个表中任意行的字符串?

mysql - 如何剪切并打印不同主机名的第一个单词?

java - postgresql 中的 IN 子句可以使用多少个参数?

java - Hibernate 返回 session 中的值,而不是从数据库中返回值

java - 使用JDBC查询数据库如何获取 "set-up"?

mysql - 调试陈旧的 Ruby 进程

grails - 安装 Grails 插件时遇到问题

grails - 用特殊的\字符设置grails代理用户名会导致错误

gradle - 找不到Grails CXF插件

mysql - 如果一条记录满足 MYSQL 查询中的检查,则查找另一条记录