如何连接 MariaDB 和 Grails?

How to connect MariaDB with Grails?

我需要 link 我的系统的第二个数据库(我在 grails 中有一个)但我找不到方法,我使用的是以下内容:

dataSource_maria {
 dialect = org.hibernate.dialect.MariaDBDialect
 driverClassName = 'org.mariadb.jdbc.Driver'
 username = 'root'
 password = 'greenArrow2019'
 url = 'jdbc:mariadb://192.168.0.20/db'
 dbCreate = 'validate'
}

控制台错误:

| Error 2019-03-18 11:06:40,695 [localhost-startStop-1] ERROR pool.ConnectionPool  - Unable to create initial connections of pool.
Message: org.mariadb.jdbc.Driver
    Line | Method
->>  266 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1149 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    624 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    748 | run       in java.lang.Thread
Caused by ClassNotFoundException: org.mariadb.jdbc.Driver

谢谢!

您需要确保在您的项目中包含 Maria 的 JDBC 驱动程序。例如,在 Grails 3 build.gradle 文件中,您可以添加对

的依赖
compile 'org.mariadb.jdbc:mariadb-java-client:2.4.1'

如果您包含 JDBC 驱动程序但仍然出现 class 未找到异常,请使用您的构建信息和 grails 版本更新此问题,以便人们可以进一步帮助您。

我在连接到 mariadb 数据库时也遇到了问题,我使用的是 grails v3.3.11、mariadb v10.4.13 和 java 1.8。

首先,hibernate 不存在该方言。有关可用的方言,请参阅 org.hibernate.dialect 包。一个常用的是 org.hibernate.dialect.MySQL5InnoDBDialect,对我来说效果很好。

其次,您需要添加 mysql 连接依赖 runtime 'mysql:mysql-connector-java:5.1.48'

在application.yml中你可以配置类似下面的东西来成功建立到mariadb数据库的连接

pooled: true
jmxExport: true
dialect: org.hibernate.dialect.MySQL5InnoDBDialect
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/mozstart
username: root
password: ''