Closed tetra12 closed 3 months ago
Application: LINBIT® LINSTOR
Module: Controller
Version: 1.25.0
Build ID: ac6be8b59c99ae4157b4368df646cf530444d70f
Build time: 2023-10-25T04:33:26+00:00
Error time: 2023-11-10 16:25:58
Node: mon
Category: LinStorException
Class name: SystemServiceStartException
Class canonical name: com.linbit.SystemServiceStartException
Generated at: Method 'initialize', Source file 'DbConnectionPoolInitializer.java', Line #69
Error message: Database initialization error
ErrorContext:
Call backtrace:
Method Native Class:Line number
setTransactionIsolation N com.linbit.linstor.dbcp.DbConnectionPool:548
migrate N com.linbit.linstor.dbcp.DbConnectionPool:213
initialize N com.linbit.linstor.dbcp.DbConnectionPoolInitializer:61
startSystemServices N com.linbit.linstor.core.ApplicationLifecycleManager:87
start N com.linbit.linstor.core.Controller:361
main N com.linbit.linstor.core.Controller:609
Caused by:
==========
Category: Exception
Class name: SQLException
Class canonical name: java.sql.SQLException
Generated at: Method 'getConnection', Source file 'DriverManager.java', Line #702
Error message: No suitable driver found for jdbc:mysql://mysql/linstor?createDatabaseIfNotExist=true
Call backtrace:
Method Native Class:Line number
getConnection N java.sql.DriverManager:702
getConnection N java.sql.DriverManager:189
createConnection N org.apache.commons.dbcp2.DriverManagerConnectionFactory:123
makeObject N org.apache.commons.dbcp2.PoolableConnectionFactory:355
create N org.apache.commons.pool2.impl.GenericObjectPool:889
borrowObject N org.apache.commons.pool2.impl.GenericObjectPool:424
borrowObject N org.apache.commons.pool2.impl.GenericObjectPool:349
getConnection N org.apache.commons.dbcp2.PoolingDataSource:134
setTransactionIsolation N com.linbit.linstor.dbcp.DbConnectionPool:540
migrate N com.linbit.linstor.dbcp.DbConnectionPool:213
initialize N com.linbit.linstor.dbcp.DbConnectionPoolInitializer:61
startSystemServices N com.linbit.linstor.core.ApplicationLifecycleManager:87
start N com.linbit.linstor.core.Controller:361
main N com.linbit.linstor.core.Controller:609
The error message only states that you are missing the JDBC driver for mysql. Please get the corresponding .jar
file, and put it into /usr/share/linstor-server/lib/
on the controller.
I'm also having this issue a year later after the bug report. I followed the docs to set up MySQL
as a database for Linstor
, but still can't make it work. I'm able to login with my linstor user to the linstor database from command line, so there's an issue with Linstor
inself.
OS: Ubuntu 22.04 MySQL: 8.0.39
Error report:
ERROR REPORT 66C0D47C-00000-000000
============================================================
Application: LINBIT® LINSTOR
Module: Controller
Version: 1.29.0
Build ID: b2be7208a777f0743d4c7187062678cd5416fccf
Build time: 2024-07-31T11:02:51+00:00
Error time: 2024-08-17 16:49:03
Node: hyp0
Thread: Main
============================================================
Reported error:
===============
Category: LinStorException
Class name: SystemServiceStartException
Class canonical name: com.linbit.SystemServiceStartException
Generated at: Method 'initialize', Source file 'DbConnectionPoolInitializer.java', Line #71
Error message: Database initialization error
ErrorContext:
Call backtrace:
Method Native Class:Line number
initialize N com.linbit.linstor.dbcp.DbConnectionPoolInitializer:71
startSystemServices N com.linbit.linstor.core.ApplicationLifecycleManager:88
start N com.linbit.linstor.core.Controller:375
main N com.linbit.linstor.core.Controller:627
Caused by:
==========
Category: RuntimeException
Class name: LinStorDBRuntimeException
Class canonical name: com.linbit.linstor.LinStorDBRuntimeException
Generated at: Method 'setTransactionIsolation', Source file 'DbConnectionPool.java', Line #553
Error message: Failed to set transaction isolation
ErrorContext:
Call backtrace:
Method Native Class:Line number
setTransactionIsolation N com.linbit.linstor.dbcp.DbConnectionPool:553
migrate N com.linbit.linstor.dbcp.DbConnectionPool:215
initialize N com.linbit.linstor.dbcp.DbConnectionPoolInitializer:63
startSystemServices N com.linbit.linstor.core.ApplicationLifecycleManager:88
start N com.linbit.linstor.core.Controller:375
main N com.linbit.linstor.core.Controller:627
Caused by:
==========
Category: Exception
Class name: SQLException
Class canonical name: java.sql.SQLException
Generated at: Method 'getConnection', Source file 'DriverManager.java', Line #702
Error message: No suitable driver found for jdbc:mysql://hyp0/linstor?createDatabaseIfNotExist=true
Call backtrace:
Method Native Class:Line number
getConnection N java.sql.DriverManager:702
getConnection N java.sql.DriverManager:189
createConnection N org.apache.commons.dbcp2.DriverManagerConnectionFactory:123
makeObject N org.apache.commons.dbcp2.PoolableConnectionFactory:355
create N org.apache.commons.pool2.impl.GenericObjectPool:889
borrowObject N org.apache.commons.pool2.impl.GenericObjectPool:424
borrowObject N org.apache.commons.pool2.impl.GenericObjectPool:349
getConnection N org.apache.commons.dbcp2.PoolingDataSource:134
setTransactionIsolation N com.linbit.linstor.dbcp.DbConnectionPool:545
migrate N com.linbit.linstor.dbcp.DbConnectionPool:215
initialize N com.linbit.linstor.dbcp.DbConnectionPoolInitializer:63
startSystemServices N com.linbit.linstor.core.ApplicationLifecycleManager:88
start N com.linbit.linstor.core.Controller:375
main N com.linbit.linstor.core.Controller:627
END OF ERROR REPORT.
/usr/share/linstor-server/lib/mariadb-java-client-3.1.4.jar
If so, it might be that you need the specific mysql connector for mysql DB. So you could try to delete/remove the file above and download the mysql jdbc driver and try with that one
@rp- why do I need to check some files ? Do you even have QA for your project ?
I followed YOUR docs and instructions and YOUR code doesn't work. Pls add this to QA and verify on your own first :point_up:
Not sure who put MySQL on the list of supported databases, or if it is actually on the list, and who tested it or how, but even MariaDB was only added later, and at the time where that happened, MySQL still had problems with incomplete support of required datatypes, constraints, checks, and also cannot perform structural changes in a transaction.
I am the guy who wrote the first line of code for LINSTOR, and it was originally designed for PostgreSQL, then Derby was added, and that was migrated to H2. Anyhow, long story short, if you want the most robust solution, I recommend to use PostgreSQL.
@raltnoeder Thank you for a detailed response. I appreciate your work on DB support and linstor
itself.
MySQL
support in your user_manualAnyway, I really support and appreciate your work on Linstor
and would like to contribute with docs/support/bug fixing to this project
Closing this as an unsupported feature
Error:
Failed to set transaction isolation
Related to #15
My Setup: Remote MySQL: v8.0.35 Controller: v1.25.0
Can connect to the
mysql
server with:mysql -h mysql -u linstor -p
from the linstor controller host