Как подключить MariaDB к Grails?

#grails #mariadb

#grails #mariadb

Вопрос:

Мне нужно связать вторую базу данных с моей системой (у меня есть одна в 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
  

Спасибо!

Ответ №1:

Вам нужно убедиться, что вы включаете драйвер JDBC для Maria в свой проект. Например, в файле Grails 3 build.gradle вы могли бы добавить зависимость от

 compile 'org.mariadb.jdbc:mariadb-java-client:2.4.1'
  

Если вы включаете драйвер JDBC и по-прежнему получаете исключение class not found, пожалуйста, обновите этот вопрос информацией о вашей сборке и версией grails, чтобы люди могли вам помочь в дальнейшем.

Комментарии:

1. К вашему сведению, информацию о версиях драйверов Maria можно найти здесь среди других мест: mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client

Ответ №2:

Я также сталкивался с проблемами при подключении к базе данных mariadb, и я использую grails v3.3.11, mariadb v10.4.13 и java 1.8.

Во-первых, этот диалект не существует для hibernate. Доступные диалекты смотрите в пакете org.hibernate.dialect. Обычно используется org.hibernate.dialect.MySQL5InnoDBDialect , который у меня отлично работал.

Во-вторых, вам нужно добавить зависимость mysql connect runtime 'mysql:mysql-connector-java:5.1.48'

В приложении.yml вы можете настроить что-то подобное приведенному ниже, чтобы успешно установить соединение с базой данных mariadb

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