help with manual installation

UTDT11 days ago

As a continuation of my previous thread (https://www.traccar.org/forums/topic/newbie-with-a-very-general-question/#post-114405), I understood that Traccar can also be installed on non-systemd linux distro so. i proceeded with the manual installation. After figuring out the 'how-to' of MySQL configuration (which i hope i got it right) i tried again to launch the manual installation with
"java -jar tracker-server.jar conf/traccar.xml"
but this time nothing at all happened:

pckgs/traccar/traccar-other-6.9.1$ java -jar tracker-server.jar conf/traccar.xml
/pckgs/traccar/traccar-other-6.9.1$

I checked the databases that I created (livetracking) to see if any tables had been populated... nothing. Empty database.
Below, i included the log i took from /pckgs/traccar/traccar-other-6.9.1/logs/

2025-09-05 12:39:31  INFO: Operating system name: Linux version: 6.10.4 architecture: amd64
2025-09-05 12:39:31  INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: AlienBOB Slackware version: 17.0.15+6
2025-09-05 12:39:31  INFO: Memory limit heap: 950mb non-heap: 0mb
2025-09-05 12:39:31  INFO: Character encoding: US-ASCII
2025-09-05 12:39:31  INFO: Version: 6.9.1
2025-09-05 12:39:31  INFO: Starting server...
2025-09-05 12:39:31  INFO: HikariPool-1 - Starting...
2025-09-05 12:39:31 ERROR: Main method error - Driver com.mysql.cj.jdbc.Driver claims to not accept jdbcUrl, jdbc:mysql://[localhost]/[livetracking]?
        zeroDateTimeBehavior=round&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false&allowMultiQueries=true&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&sessionVariables=sql_mode='' - RuntimeException (... < DatabaseModule:80 < <gener:-1 < *:-1 < ... < MainModule:139 < <gener:-1 < ...)

Could anyone suggest what this error means on the log? and, how to fix?
Thanks in advance

Anton Tananaev10 days ago

Your database URL is invalid. It looks like you forgot to remove square brackets at least.

UTDT10 days ago

Thank you Anton.
I have removed all the [square brackets] and upgraded the OpenJDK17 to OpenJDK21 (apparently, the traccar files were compiled with a newer version than the JAVA i had).
Now, the installation stops again at the terminal:

root@localhost~/.........../other-6.9.1# java -jar tracker-server.jar conf/traccar.xml
Exception in thread "main" java.lang.InternalError: Error loading java.security file
        at java.base/java.security.Security.initialize(Security.java:105)
        at java.base/java.security.Security.lambda$static$0(Security.java:84)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
        at java.base/java.security.Security.<clinit>(Security.java:83)
        at java.base/sun.security.util.SecurityProperties.getOverridableProperty(SecurityProperties.java:57)
        at java.base/sun.security.util.SecurityProperties.privilegedGetOverridable(SecurityProperties.java:48)
        at java.base/sun.security.util.SecurityProperties.includedInExceptions(SecurityProperties.java:72)
        at java.base/sun.security.util.SecurityProperties.<clinit>(SecurityProperties.java:36)
        at java.base/sun.security.util.FilePermCompat.<clinit>(FilePermCompat.java:43)
        at java.base/java.security.AccessControlContext.<init>(AccessControlContext.java:270)
        at java.base/java.security.AccessController.createWrapper(AccessController.java:649)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:461)
        at java.logging/java.util.logging.LogManager.initStatic(LogManager.java:2749)
        at java.logging/java.util.logging.LogManager.<clinit>(LogManager.java:2744)
        at java.logging/java.util.logging.Logger.demandLogger(Logger.java:650)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:720)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:703)
        at org.slf4j.jul.JDK14LoggerFactory.<init>(JDK14LoggerFactory.java:54)
        at org.slf4j.jul.JULServiceProvider.initialize(JULServiceProvider.java:52)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:201)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:187)
        at org.slf4j.LoggerFactory.getProvider(LoggerFactory.java:511)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:497)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:446)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)
        at org.traccar.Main.<clinit>(Main.java:42)
Exception in thread "Logging-Cleaner" java.lang.NoClassDefFoundError: Could not initialize class java.util.logging.LogManager
        at java.logging/java.util.logging.LogManager$Cleaner.run(LogManager.java:271)
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.InternalError: Error loading java.security file [in thread "main"]
        at java.base/java.security.Security.initialize(Security.java:105)
        at java.base/java.security.Security.lambda$static$0(Security.java:84)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:319)
        at java.base/java.security.Security.<clinit>(Security.java:83)
        at java.base/sun.security.util.SecurityProperties.getOverridableProperty(SecurityProperties.java:57)
        at java.base/sun.security.util.SecurityProperties.privilegedGetOverridable(SecurityProperties.java:48)
        at java.base/sun.security.util.SecurityProperties.includedInExceptions(SecurityProperties.java:72)
        at java.base/sun.security.util.SecurityProperties.<clinit>(SecurityProperties.java:36)
        at java.base/sun.security.util.FilePermCompat.<clinit>(FilePermCompat.java:43)
        at java.base/java.security.AccessControlContext.<init>(AccessControlContext.java:270)
        at java.base/java.security.AccessController.createWrapper(AccessController.java:649)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:461)
        at java.logging/java.util.logging.LogManager.initStatic(LogManager.java:2749)
        at java.logging/java.util.logging.LogManager.<clinit>(LogManager.java:2744)
        at java.logging/java.util.logging.Logger.demandLogger(Logger.java:650)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:720)
        at java.logging/java.util.logging.Logger.getLogger(Logger.java:703)
        at org.slf4j.jul.JDK14LoggerFactory.<init>(JDK14LoggerFactory.java:54)
        at org.slf4j.jul.JULServiceProvider.initialize(JULServiceProvider.java:52)
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:201)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:187)
        at org.slf4j.LoggerFactory.getProvider(LoggerFactory.java:511)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:497)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:446)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)
        at org.traccar.Main.<clinit>(Main.java:42)
root@localhost~/.........../other-6.9.1#

I checked the logs file and there was nothing with today's date (which means that were no compiling errors?)

Where do i go from here? is this a security error within JAVA? I checked the databases livetracking and it is still empty!

p.s.: i really don't have a cue what to expect if all is correct? what should happen with correct execution?

UTDT10 days ago

I dont know what happened there and why the code is all striked-through

Anton Tananaev9 days ago

Seems like some issue with your JVM.

UTDT7 days ago

Dear Anton,
i think i have understood that this is a one-person forum and i am sorry that I add volume to your message inbox.

After several days, i came to a stall.

I have uninstalled and reinstalled OpenJDK/JRE more than once, re-checked and edited the conf.xml file, tried to install the software with the package supplied on your website but nothing seems to give me any idea of what i am doing incorrectly except for an error in the log file:

2025-09-08 14:43:24  INFO: Operating system name: Linux version: 6.10.4 architecture: amd64
2025-09-08 14:43:24  INFO: Java runtime name: OpenJDK 64-Bit Server VM vendor: AlienBOB Slackware version: 17.0.15+6
2025-09-08 14:43:24  INFO: Memory limit heap: 950mb non-heap: 0mb
2025-09-08 14:43:24  INFO: Character encoding: US-ASCII
2025-09-08 14:43:24  INFO: Version: 6.9.1
2025-09-08 14:43:24  INFO: Starting server...
2025-09-08 14:43:24  INFO: HikariPool-1 - Starting...
2025-09-08 14:43:25 ERROR: Main method error - Connection refused - ConnectException (... < DatabaseModule:80 < <gener:-1 < *:-1 < ... < MainModule:139 < <gener:-1 < ...)

Running the command java -jar tracker-server.jar conf/traccar.xml returns nothing:

professor@localhost:~/pckgs/traccar/traccar-other-6.9.1$ java -jar tracker-server.jar conf/traccar.xml
professor@localhost:~/pckgs/traccar/traccar-other-6.9.1$

I think, i have followed all the instructions (as short as they may be) on the documentation and the troubleshooting mentions only issues with device connections and nothing with server installation. On checking my /opt directory i see traccar (does it mean the installation went OK?) and edited also the /opt/traccar/conf/traccar.xml file accordingly.

What next?

could anyone help me to get this manual installation going (although, i still don't know what/if (anything) should start) before I give up altogether and take my chances with the 'demo' servers?

Thanks in advance.

p.s.: despite this being an open source software, i'd be happy to resort to paid help although i need the tracking option for ONLY 24hrs/year

Anton Tananaev7 days ago

Now it seems like you have a database connection issue.

UTDT7 days ago

interesting update!
Just as i was posting the previous reply, i tried to run the command as 'su -' and something happened (although it stopped there)

root@localhost:/opt/traccar# java -jar tracker-server.jar conf/traccar.xml
Running Changeset: changelog-4.0-clean::changelog-4.0-clean::author
Running Changeset: changelog-4.0-clean::changelog-4.0-clean-common::author
Running Changeset: changelog-3.3::changelog-3.3::author
Running Changeset: changelog-3.5::changelog-3.5::author
Running Changeset: changelog-3.6::changelog-3.6::author
Running Changeset: changelog-3.7::changelog-3.7::author
Running Changeset: changelog-3.7::changelog-3.7-notmssql::author
Running Changeset: changelog-3.8::changelog-3.8::author
Running Changeset: changelog-3.9::changelog-3.9::author
Running Changeset: changelog-3.10::changelog-3.10::author
Running Changeset: changelog-3.10::changelog-3.10-notmssql::author
Running Changeset: changelog-3.10::changelog-3.10-mssql::author
Running Changeset: changelog-3.10::changelog-3.7-mssql::author
Running Changeset: changelog-3.11::changelog-3.11::author
Running Changeset: changelog-3.12::changelog-3.12::author
Running Changeset: changelog-3.12::changelog-3.12-notmssql::author
Running Changeset: changelog-3.12::changelog-3.12-pgsql::author
Running Changeset: changelog-3.14::changelog-3.14::author
Running Changeset: changelog-3.15::changelog-3.15::author
Running Changeset: changelog-3.16::changelog-3.16::author
Running Changeset: changelog-3.17::changelog-3.3-admin::author
Running Changeset: changelog-3.17::changelog-3.17::author
Running Changeset: changelog-4.0::changelog-4.0-pre::author
Running Changeset: changelog-4.0::changelog-4.0-common::author
Running Changeset: changelog-4.0::changelog-4.0-pg::author
Running Changeset: changelog-4.0::changelog-4.0::author
Running Changeset: changelog-4.0::changelog-4.0-renaming::author
Running Changeset: changelog-4.1::changelog-4.1-mssql::author
Running Changeset: changelog-4.7::changelog-4.7::author
Running Changeset: changelog-4.9::changelog-4.9::author
Running Changeset: changelog-4.10::changelog-4.10::author
Running Changeset: changelog-4.11::changelog-4.11::author
Running Changeset: changelog-4.13::changelog-4.13::author
Running Changeset: changelog-4.15::changelog-4.15::author
Running Changeset: changelog-5.0::changelog-5.0::author
Running Changeset: changelog-5.1::changelog-5.1::author
Running Changeset: changelog-5.2::changelog-5.2::author
Running Changeset: changelog-5.3::changelog-5.3::author
Running Changeset: changelog-5.4::changelog-5.4::author
Running Changeset: changelog-5.5::changelog-5.5::author
Running Changeset: changelog-5.6::changelog-5.6::author
Running Changeset: changelog-5.7::changelog-5.7::author
Running Changeset: changelog-5.8::changelog-5.8::author
Running Changeset: changelog-5.9::changelog-5.9::author
Running Changeset: changelog-5.10::changelog-5.10::author
Running Changeset: changelog-5.11::changelog-5.11::author
Running Changeset: changelog-6.2::changelog-6.2::author
Running Changeset: changelog-6.3::changelog-6.3-old::author
Running Changeset: changelog-6.3::changelog-6.3-new::author
Running Changeset: changelog-6.6::changelog-6.6::author
Running Changeset: changelog-6.7.0::changelog-6.7.0::author

UPDATE SUMMARY
Run:                         51
Previously run:               0
Filtered out:                 0
-------------------------------
Total change sets:           51

Liquibase: Update has been successful. Rows affected: 52

What does this mean?

Anton Tananaev7 days ago

This looks fine to me. It seems like the service started successfully.

UTDT7 days ago

Thank you.
Now i have the traccar/server (http://localhost:8082/) starting on my (firefox) web browser.
I will report back in case of any other problems.
Thank you Anton

UTDT7 days ago

hi again,
my learning experience has been great (and steep) with traccar.

I have a few more, perhaps trivial, questions:

  1. what is the difference between running/starting the server from /opt/traccar (which I don't recall putting the traccar files there)? and obtaining this output (here i have to be 'su -')
Running Changeset: changelog-6.3::changelog-6.3-new::author
Running Changeset: changelog-6.6::changelog-6.6::author
Running Changeset: changelog-6.7.0::changelog-6.7.0::author

UPDATE SUMMARY
Run:                         51
Previously run:               0
Filtered out:                 0
-------------------------------
Total change sets:           51

Liquibase: Update has been successful. Rows affected: 52

and
2) running/starting the server from the local /user/pckgs/traccar directory (which I know i placed there)? - (here i also have to be 'su -') returning this output:

Running Changeset: changelog-6.7.0::changelog-6.7.0::author
Running Changeset: changelog-6.8.0::changelog-6.8.0-timescale::author
Running Changeset: changelog-6.9.0::changelog-6.9.0::author

UPDATE SUMMARY
Run:                         28
Previously run:               0
Filtered out:                 0
-------------------------------
Total change sets:           28

Liquibase: Update has been successful. Rows affected: 1

Anyhow, maybe, the most important question is related to running the server with own mysql database as suggested in your page https://www.traccar.org/mysql/

  1. what is happening if i don't use the embedded h2 database? - after editing traccar.xml as documented on the same page, and strat the server from the local directory, i get
root@localhost:/home/professor/pckgs/traccar/traccar-other-6.9.1# java -jar tracker-server.jar conf/traccar.xml
root@localhost:/home/professor/pckgs/traccar/traccar-other-6.9.1# 

if i start the server from the /opt/traccar directory

root@localhost:/opt/traccar# java -jar tracker-server.jar conf/traccar.xml
2025-09-08 23:31:53 ERROR: Main method error -  - SAXParseException (... < Config:45 < <gener:-1 < *:-1 < ... < Main:117 < *:111)
root@localhost:/opt/traccar#

I also noticed that in both cases a new directory is added 'localhost' (this is the /home/professor/pckgs/traccar/traccar-other-6.9.1/localhost/livetracking.trace.db

2025-09-08 22:24:35.630786-01:00 jdbc[5]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATABASECHANGELOGLOCK" not found (this database is empty); SQL statement:
SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK [42104-232]
2025-09-08 22:24:39.225101-01:00 jdbc[5]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "T.DISABLEREPORTS" not found; SQL statement:
select t.disablereports from PUBLIC.tc_servers t where 0=1 [42122-232]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
	at org.h2.message.DbException.get(DbException.java:223)
	at org.h2.message.DbException.get(DbException.java:199)
	at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:244)
	at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:226)
	at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
	at org.h2.command.query.Select.prepareExpressions(Select.java:1228)
	at org.h2.command.query.Query.prepare(Query.java:232)
	at org.h2.command.Parser.prepareCommand(Parser.java:489)
	at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:645)
	at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:561)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164)
	at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93)
	at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:315)
	at liquibase.database.jvm.JdbcConnection.prepareStatement(JdbcConnection.java:482)
	at liquibase.precondition.core.ColumnExistsPrecondition.makeSureColumnExistsInOtherDBs(ColumnExistsPrecondition.java:161)
	at liquibase.precondition.core.ColumnExistsPrecondition.checkFast(ColumnExistsPrecondition.java:140)
	at liquibase.precondition.core.ColumnExistsPrecondition.check(ColumnExistsPrecondition.java:83)
	at liquibase.precondition.core.NotPrecondition.check(NotPrecondition.java:34)
	at liquibase.precondition.core.AndPrecondition.check(AndPrecondition.java:39)
	at liquibase.precondition.core.PreconditionContainer.check(PreconditionContainer.java:214)
	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:728)
	at liquibase.changelog.visitor.UpdateVisitor.executeAcceptedChange(UpdateVisitor.java:127)
	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:71)
	at liquibase.changelog.ChangeLogIterator.lambda$run$0(ChangeLogIterator.java:133)
	at liquibase.Scope.lambda$child$0(Scope.java:216)
	at liquibase.Scope.child(Scope.java:225)
	at liquibase.Scope.child(Scope.java:215)
	at liquibase.Scope.child(Scope.java:194)
	at liquibase.changelog.ChangeLogIterator.lambda$run$1(ChangeLogIterator.java:122)
	at liquibase.Scope.lambda$child$0(Scope.java:216)
	at liquibase.Scope.child(Scope.java:225)
	at liquibase.Scope.child(Scope.java:215)
	at liquibase.Scope.child(Scope.java:194)
	at liquibase.Scope.child(Scope.java:282)
	at liquibase.Scope.child(Scope.java:286)
	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:91)
	at liquibase.command.core.AbstractUpdateCommandStep.lambda$run$0(AbstractUpdateCommandStep.java:114)
	at liquibase.Scope.lambda$child$0(Scope.java:216)
	at liquibase.Scope.child(Scope.java:225)
	at liquibase.Scope.child(Scope.java:215)
	at liquibase.Scope.child(Scope.java:194)
	at liquibase.command.core.AbstractUpdateCommandStep.run(AbstractUpdateCommandStep.java:112)
	at liquibase.command.core.UpdateCommandStep.run(UpdateCommandStep.java:100)
	at liquibase.command.CommandScope.lambda$execute$6(CommandScope.java:263)
	at liquibase.Scope.child(Scope.java:225)
	at liquibase.Scope.child(Scope.java:201)
	at liquibase.command.CommandScope.execute(CommandScope.java:251)
	at liquibase.Liquibase.lambda$update$0(Liquibase.java:216)
	at liquibase.Scope.lambda$child$0(Scope.java:216)
	at liquibase.Scope.child(Scope.java:225)
	at liquibase.Scope.child(Scope.java:215)
	at liquibase.Scope.child(Scope.java:194)
	at liquibase.Liquibase.runInScope(Liquibase.java:1366)
	at liquibase.Liquibase.update(Liquibase.java:205)
	at liquibase.Liquibase.update(Liquibase.java:188)
	at liquibase.Liquibase.update(Liquibase.java:175)
	at org.traccar.storage.DatabaseModule.provideDataSource(DatabaseModule.java:99)
	at org.traccar.storage.DatabaseModule$$FastClassByGuice$$18ba08.GUICE$TRAMPOLINE(<generated>)
	at org.traccar.storage.DatabaseModule$$FastClassByGuice$$18ba08.apply(<generated>)
	at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
	at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
	at org.traccar.MainModule.provideStorage(MainModule.java:139)
	at org.traccar.MainModule$$FastClassByGuice$$7aac8.GUICE$TRAMPOLINE(<generated>)
	at org.traccar.MainModule$$FastClassByGuice$$7aac8.apply(<generated>)
	at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
	at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
	at org.traccar.schedule.ScheduleManager.lambda$start$0(ScheduleManager.java:55)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
	at java.base/java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:772)
	at org.traccar.schedule.ScheduleManager.start(ScheduleManager.java:54)
	at org.traccar.Main.run(Main.java:127)
	at org.traccar.Main.main(Main.java:111)

and this is /opt/traccar/localhost/livetracking.trace.db

2025-09-08 15:52:18.413741-01:00 jdbc[4]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATABASECHANGELOGLOCK" not found (this database is empty); SQL statement:
SELECT COUNT(*) FROM PUBLIC.DATABASECHANGELOGLOCK [42104-232]
2025-09-08 15:52:24.539364-01:00 jdbc[4]: exception
org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "T.DISABLEREPORTS" not found; SQL statement:
select t.disablereports from PUBLIC.tc_servers t where 0=1 [42122-232]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
	at org.h2.message.DbException.get(DbException.java:223)
	at org.h2.message.DbException.get(DbException.java:199)
	at org.h2.expression.ExpressionColumn.getColumnException(ExpressionColumn.java:244)
	at org.h2.expression.ExpressionColumn.optimizeOther(ExpressionColumn.java:226)
	at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:213)
	at org.h2.command.query.Select.prepareExpressions(Select.java:1228)
	at org.h2.command.query.Query.prepare(Query.java:232)
	at org.h2.command.Parser.prepareCommand(Parser.java:489)
	at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:645)
	at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:561)
	at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164)
	at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:94)
	at liquibase.precondition.core.ColumnExistsPrecondition.checkFast(ColumnExistsPrecondition.java:164)
	at liquibase.precondition.core.ColumnExistsPrecondition.check(ColumnExistsPrecondition.java:82)
	at liquibase.precondition.core.NotPrecondition.check(NotPrecondition.java:34)
	at liquibase.precondition.core.AndPrecondition.check(AndPrecondition.java:39)
	at liquibase.precondition.core.PreconditionContainer.check(PreconditionContainer.java:213)
	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:644)
	at liquibase.changelog.visitor.UpdateVisitor.executeAcceptedChange(UpdateVisitor.java:120)
	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:70)
	at liquibase.changelog.ChangeLogIterator$2.lambda$run$0(ChangeLogIterator.java:110)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.Scope.child(Scope.java:263)
	at liquibase.changelog.ChangeLogIterator$2.run(ChangeLogIterator.java:100)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.Scope.child(Scope.java:263)
	at liquibase.Scope.child(Scope.java:267)
	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:74)
	at liquibase.command.core.AbstractUpdateCommandStep.lambda$run$0(AbstractUpdateCommandStep.java:87)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.command.core.AbstractUpdateCommandStep.run(AbstractUpdateCommandStep.java:86)
	at liquibase.command.core.UpdateCommandStep.run(UpdateCommandStep.java:102)
	at liquibase.command.CommandScope.execute(CommandScope.java:213)
	at liquibase.Liquibase.lambda$update$0(Liquibase.java:223)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.Liquibase.runInScope(Liquibase.java:1361)
	at liquibase.Liquibase.update(Liquibase.java:215)
	at liquibase.Liquibase.update(Liquibase.java:197)
	at liquibase.Liquibase.update(Liquibase.java:183)
	at org.traccar.storage.DatabaseModule.provideDataSource(DatabaseModule.java:99)
	at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1abbdc.GUICE$TRAMPOLINE(<generated>)
	at org.traccar.storage.DatabaseModule$$FastClassByGuice$$1abbdc.apply(<generated>)
	at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
	at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
	at org.traccar.MainModule.provideStorage(MainModule.java:141)
	at org.traccar.MainModule$$FastClassByGuice$$c77c7.GUICE$TRAMPOLINE(<generated>)
	at org.traccar.MainModule$$FastClassByGuice$$c77c7.apply(<generated>)
	at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:260)
	at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:171)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
	at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:169)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:40)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:60)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1148)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1186)
	at org.traccar.schedule.ScheduleManager.lambda$start$0(ScheduleManager.java:55)
	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
	at java.base/java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:772)
	at org.traccar.schedule.ScheduleManager.start(ScheduleManager.java:54)
	at org.traccar.Main.run(Main.java:127)
	at org.traccar.Main.main(Main.java:111)

Am i making a HUGE salad of server instances, directories and what-not?

p.s.: the livetracking databses is still empty