The message in application.log described the last symptom, not the cause. Below are the log entries as ColdFusion wrote them; only the path of the CFML file and the thread name are generalised.
The exact log entries
application.log, on every request:
"Error","...-exec-6","11/02/26","17:40:29","","Error Executing Database Query.Could not create connection to database server. Attempted reconnect 3 times. Giving up. The specific sequence of files included or processed is: /app/wwwroot/katalog.cfm, line: 15 Could not create connection to database server. Attempted reconnect 3 times. Giving up."
exception.log, the full exception chain (JDK, Tomcat and ColdFusion filter frames left out and marked ...):
coldfusion.tagext.sql.QueryTag$DatabaseQueryException: Error Executing Database Query.
at coldfusion.tagext.sql.QueryTag.startQueryExecution(QueryTag.java:853)
at coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:750)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
...
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:918)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:897)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:886)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:860)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2097)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2022)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
...
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
at coldfusion.server.j2ee.sql.pool.JDBCPool.createPhysicalConnection(JDBCPool.java:614)
at coldfusion.server.j2ee.sql.pool.ConnectionRunner$RunnableConnection.run(ConnectionRunner.java:59)
... 1 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 1 milliseconds ago. The last packet sent successfully to the server was 1 milliseconds ago.
...
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:203)
at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4901)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2191)
at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2038)
... 12 more
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
...
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:188)
... 17 more
coldfusion-error.log, the driver's messages:
Mon Nov 02 17:40:25 CET 2026 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
SQLException while attempting to connect: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up..
Not the update on Debian 12, but the 11.0 boundary
Between the packages 1:10.11.3-1 and 1:10.11.19-0+deb12u1 there is no difference for Connector/J 5.1: every driver version we checked behaved the same, also after the update in place. The driver sees both servers as MySQL 5.5.5-10.11…, and mariadb-upgrade does nothing after an update within the branch. What decides is the prefix 5.5.5-, which MariaDB dropped in 11.0.1 (MDEV-28910). Servers from 11.4 on also offer TLS without any configuration, with a certificate generated at startup.
The same "Connector/J 5" behaves in three ways
On MariaDB 11.0 and later the releases up to 5.1.37 connect without TLS, 5.1.38 to 5.1.45 do not connect at all, and 5.1.46 to 5.1.49 connect over TLS without certificate verification, writing a warning of several sentences to coldfusion-error.log for every new connection. Two servers with "the same" driver can therefore differ. We read the version in the jar's manifest (Implementation-Version: 5.1.44), not in the name of the folder.
The list of TLS protocols lives in the driver
In the releases 5.1.38 to 5.1.45 the class ExportControlled offers TLSv1.2 only to MySQL servers from 5.6 in the Enterprise edition. Every other server gets TLSv1.1,TLSv1. Java 21 lists both protocols in jdk.tls.disabledAlgorithms (in Oracle JDK since 11.0.11), so the handshake ends with "No appropriate protocol" before anything reaches the server. From 5.1.46 servers from 8.0.4 on get TLSv1.2 as well.
"NonTransient" and "reconnect" point to the network
ColdFusion opens the physical connection through connectWithRetries, even without autoReconnect=true in the URL. The driver tries three times, every request waits 4.03 s for the error, and under traffic ColdFusion's threads are mostly busy waiting. The real cause is the third Caused by in exception.log. Checking the firewall or the database's connection limit only costs time here.
The "MySQL" type in ColdFusion 2025 is a dead end
The "MySQL" type expects the class com.mysql.cj.jdbc.Driver, that is Connector/J 8 or later, which Adobe does not ship. Without that jar the data source returns "No suitable driver available for … The mysql package is not installed.", and cfpm.sh install mysql answers "mysql(2025.0.08.331874) package is already installed.", because the mysql package is the DataDirect driver. The right way is the type "Other", as in the Adobe knowledge base.
Swapping the jar is not enough, and the newest driver has other TLS defaults
MariaDB Connector/J 3.x and 4.x register only for jdbc:mariadb:; the old URL jdbc:mysql:// ends with "No suitable driver found", so every data source has to change. Version 4.0.0 from October 2026 needs Java 17 and defaults to sslMode=verify-full. Against the Debian 12 database without TLS it ends with:
java.sql.SQLNonTransientConnectionException: (conn=52) Trying to connect with ssl, but ssl not enabled in the server. TLS is enabled by default, set sslMode=disable to permit unencrypted connection
"Other" changes data types
The "MySQL" type appends tinyInt1isBit=false to the URL, "Other" does not. Without it both driver families return TINYINT(1) as Boolean, and ColdFusion shows the values 0, 1, 2 as NO, YES, YES. Connector/J 5.1 reported 0000-00-00 00:00:00 dates with the error "Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp", MariaDB Connector/J returns an empty value. Code that relied on one or the other will behave differently.
Every database restart leaves dead connections in the pool
A package update restarts MariaDB, and ColdFusion keeps connections open. Each of them gives one error on first use: with 8 pooled connections, 8 of the next 12 requests failed, in both rounds. The same symptom after an ordinary update within 10.11 is easily taken for a driver failure:
"Error","...-exec-5","11/02/26","17:34:39","","Datasource shop verification failed.The root cause was that: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 31,181 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago. ..."
"Error","...-exec-1","11/02/26","17:34:39","","Error Executing Database Query.(conn=13) Socket error The specific sequence of files included or processed is: /app/wwwroot/katalog.cfm, line: 15 (conn=13) Socket error"
The first entry comes from Connector/J 5.1, the second from MariaDB Connector/J; its cause in exception.log is java.io.EOFException: unexpected end of stream, read 0 bytes from 4 (socket was closed by server). "Validate connection" with the query SELECT 1 removed these errors completely, 0 of 12.