From 99428bb7beb9a26f5c876dc6b6437a189996bc17 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 14 Jan 2026 07:39:43 +0000 Subject: [PATCH 1/2] Initial plan From 9bcf6989ea834aca4c5d54fdcd8d9d96731e099f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 14 Jan 2026 07:47:21 +0000 Subject: [PATCH 2/2] Allow MySQL JDBC URL without hostname Co-authored-by: linghengqian <20187731+linghengqian@users.noreply.github.com> --- .../org/testcontainers/jdbc/ConnectionUrl.java | 2 +- .../mysql/MySQLDatabaseContainerDriverTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/jdbc/src/main/java/org/testcontainers/jdbc/ConnectionUrl.java b/modules/jdbc/src/main/java/org/testcontainers/jdbc/ConnectionUrl.java index ec606f3ed32..52d0b1af6d4 100644 --- a/modules/jdbc/src/main/java/org/testcontainers/jdbc/ConnectionUrl.java +++ b/modules/jdbc/src/main/java/org/testcontainers/jdbc/ConnectionUrl.java @@ -227,7 +227,7 @@ public interface Patterns { //Matches to part of string - hostname:port/databasename Pattern DB_INSTANCE_MATCHING_PATTERN = Pattern.compile( - "(?[^:]+)?" + + "(?[^:/]+)?" + "(:(?[0-9]+))?" + "(" + "(?[:/])" + diff --git a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java index da73f21ae2e..9aa5aafd312 100644 --- a/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java +++ b/modules/mysql/src/test/java/org/testcontainers/jdbc/mysql/MySQLDatabaseContainerDriverTest.java @@ -41,4 +41,19 @@ void shouldRespectBothUrlPropertiesAndParameterProperties() throws SQLException } } } + + @Test + void shouldSupportUrlWithoutHostname() throws SQLException { + ContainerDatabaseDriver driver = new ContainerDatabaseDriver(); + String url = "jdbc:tc:mysql:8.0.36:///databasename"; + + try (Connection connection = driver.connect(url, new Properties())) { + try (Statement statement = connection.createStatement()) { + try (ResultSet resultSet = statement.executeQuery("SELECT DATABASE()")) { + assertThat(resultSet.next()).isTrue(); + assertThat(resultSet.getString(1)).isEqualTo("databasename"); + } + } + } + } }