- Хроники
- Grand Cursade
- Исходники
- Присутствуют
- Сборка
- Mobius
Всем добрый вечер.
Собрал сборку из последних исходников из репы Мобиуса.
Пытаюсь поднять ее поверх БД, которая была создана для запуска сборки, скачанной 2 года назад и собранной на исходниках 2021 года.
Ту сборку поднимал на MySQL 5 и JDK 15. Саму сборку готовую, а также MySQL и Java скачивал оптом со стороннего ресурса.
Базу сносить не хочется, чтобы заново не прокачивать персонажей. В то же время в новой сборке я несколько изменил логику работы некоторых игровых механизмов перед компиляцией. Соответственно хочу запустить свежую сборку на старой БД.
В конфигах сборки 2021 года, которая работает у меня сейчас, прописан следующий коннект к БД:
Driver = org.mariadb.jdbc.Driver
URL = jdbc:mariadb://localhost/MyDBName.
Эта сборка успешно работает и к ней успешно коннектится клиент.
В конфигах сборки из последних исходников прописан следующий коннект к БД:
Driver = com.mysql.cj.jdbc.Driver
URL = jdbc:mysql://localhost/MyDBName
По данным координатам сборка не коннектится к БД - идет ошибка при сборке сервера:
[19/01 19:46:33] Database: Problem initializing connection pool.
java.sql.SQLTransientConnectionException: L2JMobiusPool - Connection is not available, request timed out after 60012ms (total=0, active=0, idle=0, waiting=0)
at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:706)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:187)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:99)
at org.l2jmobius.commons.database.DatabaseFactory.testSingleConnection(DatabaseFactory.java:244)
at org.l2jmobius.commons.database.DatabaseFactory.init(DatabaseFactory.java:106)
at org.l2jmobius.loginserver.LoginServer.<init>(LoginServer.java:96)
at org.l2jmobius.loginserver.LoginServer.main(LoginServer.java:58)
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:102)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:65)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:911)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:830)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:420)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:238)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:180)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:139)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:362)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:203)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:479)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:744)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:723)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Если имя драйвера поменять вот так (с таким драйвером я успешно подключаюсь к своей БД через DBeaver):
Driver = com.mysql.jdbc.Driver (убрал из названия .cj)
то идет другая ошибка:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[main] WARN com.zaxxer.hikari.util.DriverDataSource - Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
и далее:
[19/01 19:50:35] Database: Problem initializing connection pool.
И соответственно тоже не идет коннект к БД.
Когда же пытаюсь поменять координаты в конфигах на те, что у меня указаны в рабочем сервере:
Driver = org.mariadb.jdbc.Driver
URL = jdbc:mariadb://localhost/MyDBName
то идет еще одна ошибка:
[main] ERROR com.zaxxer.hikari.HikariConfig - Failed to load driver class org.mariadb.jdbc.Driver from HikariConfig class classloader jdk.internal.loader.ClassLoaders$AppClassLoader@3d4eac69
[19/01 19:55:26] Database: Failed to initialize HikariCP pool.
java.lang.RuntimeException: Failed to load driver class org.mariadb.jdbc.Driver in either of HikariConfig class loader or Thread context classloader
at com.zaxxer.hikari.HikariConfig.setDriverClassName(HikariConfig.java:516)
at org.l2jmobius.commons.database.DatabaseFactory.init(DatabaseFactory.java:68)
at org.l2jmobius.loginserver.LoginServer.<init>(LoginServer.java:96)
at org.l2jmobius.loginserver.LoginServer.main(LoginServer.java:58)
Подозреваю, что все это - из-за того, что сборка не знает драйвера, с которым необходимо установить коннект к БД.
Есть какой-то вариант подружить новую сборку с моей старой базой? Или однозначно только поднимать новую базу?
Собрал сборку из последних исходников из репы Мобиуса.
Пытаюсь поднять ее поверх БД, которая была создана для запуска сборки, скачанной 2 года назад и собранной на исходниках 2021 года.
Ту сборку поднимал на MySQL 5 и JDK 15. Саму сборку готовую, а также MySQL и Java скачивал оптом со стороннего ресурса.
Базу сносить не хочется, чтобы заново не прокачивать персонажей. В то же время в новой сборке я несколько изменил логику работы некоторых игровых механизмов перед компиляцией. Соответственно хочу запустить свежую сборку на старой БД.
В конфигах сборки 2021 года, которая работает у меня сейчас, прописан следующий коннект к БД:
Driver = org.mariadb.jdbc.Driver
URL = jdbc:mariadb://localhost/MyDBName.
Эта сборка успешно работает и к ней успешно коннектится клиент.
В конфигах сборки из последних исходников прописан следующий коннект к БД:
Driver = com.mysql.cj.jdbc.Driver
URL = jdbc:mysql://localhost/MyDBName
По данным координатам сборка не коннектится к БД - идет ошибка при сборке сервера:
[19/01 19:46:33] Database: Problem initializing connection pool.
java.sql.SQLTransientConnectionException: L2JMobiusPool - Connection is not available, request timed out after 60012ms (total=0, active=0, idle=0, waiting=0)
at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:706)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:187)
at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:99)
at org.l2jmobius.commons.database.DatabaseFactory.testSingleConnection(DatabaseFactory.java:244)
at org.l2jmobius.commons.database.DatabaseFactory.init(DatabaseFactory.java:106)
at org.l2jmobius.loginserver.LoginServer.<init>(LoginServer.java:96)
at org.l2jmobius.loginserver.LoginServer.main(LoginServer.java:58)
Caused by: java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:102)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:81)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:55)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:65)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:911)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:830)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:420)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:238)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:180)
at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:139)
at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:362)
at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:203)
at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:479)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:744)
at com.zaxxer.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:723)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Если имя драйвера поменять вот так (с таким драйвером я успешно подключаюсь к своей БД через DBeaver):
Driver = com.mysql.jdbc.Driver (убрал из названия .cj)
то идет другая ошибка:
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
[main] WARN com.zaxxer.hikari.util.DriverDataSource - Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
и далее:
[19/01 19:50:35] Database: Problem initializing connection pool.
И соответственно тоже не идет коннект к БД.
Когда же пытаюсь поменять координаты в конфигах на те, что у меня указаны в рабочем сервере:
Driver = org.mariadb.jdbc.Driver
URL = jdbc:mariadb://localhost/MyDBName
то идет еще одна ошибка:
[main] ERROR com.zaxxer.hikari.HikariConfig - Failed to load driver class org.mariadb.jdbc.Driver from HikariConfig class classloader jdk.internal.loader.ClassLoaders$AppClassLoader@3d4eac69
[19/01 19:55:26] Database: Failed to initialize HikariCP pool.
java.lang.RuntimeException: Failed to load driver class org.mariadb.jdbc.Driver in either of HikariConfig class loader or Thread context classloader
at com.zaxxer.hikari.HikariConfig.setDriverClassName(HikariConfig.java:516)
at org.l2jmobius.commons.database.DatabaseFactory.init(DatabaseFactory.java:68)
at org.l2jmobius.loginserver.LoginServer.<init>(LoginServer.java:96)
at org.l2jmobius.loginserver.LoginServer.main(LoginServer.java:58)
Подозреваю, что все это - из-за того, что сборка не знает драйвера, с которым необходимо установить коннект к БД.
Есть какой-то вариант подружить новую сборку с моей старой базой? Или однозначно только поднимать новую базу?