| Bug #112900 | MySQL Router container image does not expose 6450 port for read/write splitting | ||
|---|---|---|---|
| Submitted: | 31 Oct 2023 13:26 | Modified: | 13 Dec 2023 23:04 |
| Reporter: | Takuya Hasegawa | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Router: Docker Image | Severity: | S3 (Non-critical) |
| Version: | 8.2.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[31 Oct 2023 16:49]
MySQL Verification Team
Thanks for the report
[8 Nov 2023 14:02]
Johannes Schlüter
Posted by developer: The fix has been committed. These ports are exposed: * 6446 (classic r/w) * 6447 (classic r/o) * 6448 (X r/w) * 6449 (X / ro) * 6450 (classic rw-splitting, NEW) * 8443 (https rest API) As a work-around one can manually expose the port. For example docker run -e MYSQL_HOST=... -e MYSQL_PORT=3306 -e MYSQL_USER=... -e MYSQL_PASSWORD=.... -p 6450 container-registry.oracle.com/mysql/community-router:8.2.0 Thanks for the report.
[8 Nov 2023 14:07]
Takuya Hasegawa
Will that fix be reflected in the next version? Or will it overwrite existing tags?
[13 Dec 2023 23:04]
Daniel So
Posted by developer: Added the following entry to the MySQL Router 8.3.0 changelog: "In the Docker image for MySQL Router 8.2.0, port 6450 was not exposed by default, so read-write splitting was not possible without manually exposing the port. That and a number of other ports are now exposed."

Description: We can't use read/write splitting on 8.2.0 and 8.2.0-aarch64 images because the image does not expose the 6450 port. How to repeat: $ docker inspect --format="{{json .Config.ExposedPorts }}" container-registry.oracle.com/mysql/community-router:8.2.0 {"6446/tcp":{},"6447/tcp":{},"6448/tcp":{},"6449/tcp":{},"8443/tcp":{}} Suggested fix: Add `EXPOSE 6450` in Dockerfile