-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
When running Statz v1.6.2 in Docker, the plugin fails to connect to MySQL, despite the MySQL Connector/J driver being installed and running globally in the container. The following error is displayed in the console:
java.lang.RuntimeException: Failed to get driver instance for jdbcUrl=jdbc:mysql://mc-mysql:3306/minecraft
Caused by: java.sql.SQLException: No suitable driver
025-08-14 19:39:57
java.lang.RuntimeException: Failed to get driver instance for jdbcUrl=jdbc:mysql://mc-mysql:3306/minecraft
2025-08-14 19:39:57
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:114) ~[?:?] {}
2025-08-14 19:39:57
at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:320) ~[?:?] {}
2025-08-14 19:39:57
at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:109) ~[?:?] {}
2025-08-14 19:39:57
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:108) ~[?:?] {}
2025-08-14 19:39:57
at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81) ~[?:?] {}
2025-08-14 19:39:57
at me.staartvin.statz.database.MySQLConnector.setupDatabaseConnection(MySQLConnector.java:61) ~[?:?] {}
2025-08-14 19:39:57
at me.staartvin.statz.database.MySQLConnector.getConnection(MySQLConnector.java:73) ~[?:?] {}
2025-08-14 19:39:57
at me.staartvin.statz.database.MySQLConnector.lambda$load$0(MySQLConnector.java:93) ~[?:?] {}
2025-08-14 19:39:57
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftTask.run(CraftTask.java:82) ~[?:?] {re:classloading}
2025-08-14 19:39:57
at org.bukkit.craftbukkit.v1_20_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[?:?] {re:classloading}
2025-08-14 19:39:57
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?] {re:mixin,re:mixin}
2025-08-14 19:39:57
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?] {}
2025-08-14 19:39:57
at java.lang.Thread.run(Thread.java:1583) ~[?:?] {re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin,re:mixin}
2025-08-14 19:39:57
Caused by: java.sql.SQLException: No suitable driver
2025-08-14 19:39:57
at java.sql.DriverManager.getDriver(DriverManager.java:300) ~[java.sql:?] {re:mixin,re:mixin,re:mixin}
2025-08-14 19:39:57
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:106) ~[?:?] {}
Expected behavior:
The plugin should detect the MySQL driver and successfully connect to the database.
Actual behavior:
The plugin crashes with No suitable driver, although the driver exists and runs in the container.
Environment:
Minecraft Server: paper 1.20.1
Statz Version: 1.6.2
MySQL: 8.0 in Docker
Docker ima
MySQL Connector/J: 9.4.0
services:
main:
build:
context: .
dockerfile: dockerfiles/servers/main/Dockerfile
container_name: main
ports:
- "25573:25571"
- "25574:25572"
- "25575:25573"
- "25576:8100"
volumes:
- ./servers/main:/server
networks:
- mcnet
mc-mysql:
container_name: mc-mysql
image: mysql:8.0
environment:
MYSQL_DATABASE: minecraft
MYSQL_USER: mcuser
MYSQL_PASSWORD: mcpassword
MYSQL_ROOT_PASSWORD: rootpass
ports:
- "3306:3306"
networks:
- mcnet
FROM debian:bookworm
RUN apt-get update && apt-get install -y \
wget \
curl \
unzip \
gnupg \
software-properties-common \
&& apt-get clean
RUN wget -qO- https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor > /usr/share/keyrings/adoptium.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/adoptium.gpg] https://packages.adoptium.net/artifactory/deb bookworm main" > /etc/apt/sources.list.d/adoptium.list \
&& apt-get update \
&& apt-get install -y temurin-21-jdk \
&& apt-get clean
RUN wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-j_9.4.0-1debian12_all.deb \
&& apt install -y ./mysql-connector-j_9.4.0-1debian12_all.deb \
&& rm mysql-connector-j_9.4.0-1debian12_all.deb
RUN cp /usr/share/java/mysql-connector-j-9.4.0.jar /usr/local/lib/mysql-connector-j.jar
ENV CLASSPATH="/usr/local/lib/mysql-connector-j.jar:$CLASSPATH"
ENV SERVER_JAR=server.jar
ENV CORE_JAR=paper.1.20.1.jar
WORKDIR /core
COPY cores/${CORE_JAR} $SERVER_JAR
COPY ./dockerfiles/servers/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
WORKDIR /server
VOLUME ["/server"]
ENTRYPOINT ["/entrypoint.sh"]
#!/bin/bash
if [ ! -f /server/server.jar ]; then
cp /core/server.jar /server/server.jar
fi
echo "eula=true" > /server/eula.txt
cd /server
echo "Проверка драйвера MySQL..."
java -cp "/usr/local/lib/mysql-connector-j.jar" -Xms128M -Xmx256M -jar /core/server.jar -version
track stats: true
show database save message: false
mysql:
enabled: true
hostname: mc-mysql:3306
username: mcuser
password: mcpassword
database: minecraft
database for backups: Statz_backups
periodic save time: 10
refresh player cache time: 60
disabled statistics:
- DISABLED_STAT_NAME_HERE
- OTHER_DISABLED_STAT_NAME
ignore creative: false
enable debug output: true
latest patch mysql version: 0
use custom statz list: false
custom statz list:
- JOINS
- FOOD_EATEN
- KILLS_PLAYERS
use statz gui: true
enable logging: false
make backup of database before patching: true
latest patch sqlite version: 6
VaheSargsyan2005
Metadata
Metadata
Assignees
Labels
No labels