MySQL is a very fast, multi-threaded, multi-user and robust SQL
(Structured Query Language) database server. MySQL Server is intended for
mission-critical, heavy-load production systems as well as for embedding
into mass-deployed software
===> The following configuration options are available for mysql84-server-8.4.11_4:
====> Permissible Storage Engines (to compile statically into the server)
ARCHIVE=off: Compile "Archive Storage" statically in server
BLACKHOLE=off: Compile "Blackhole Storage" statically in server
EXAMPLE=off: Compile "Example Storage" statically in server
FEDERATED=off: Compile "Federated Storage" statically in server
INNOBASE=off: Compile "InnoDB Storage" statically in server
PARTITION=off: Compile "Partitioning support Storage" statically in server
PERFSCHEMA=off: Compile "Performance Schema Storage" statically in server
====> Default features knobs
PERFSCHM=on: Enable "Performance Schema" by default (High RAM usage)
===> Use 'make config' to modify these settings
databases/mysql84-{client,server}: Fix MySQL Router plugin loading
MySQL Router fails to start when the configuration contains an
[http_server] section, as generated by mysqlsh:
Error: Loading plugin for config-section '[http_server]' failed:
libmysqlrouter_http_server.so.1: No space available for static
Thread Local Storage
Upstream compiles with -ftls-model=initial-exec, so router libraries
loaded through dlopen(3) have to be placed in the static TLS block.
libmysqlrouter_http_server.so.1 needs 272 bytes and libmysqlharness.so.1
another 32, while rtld reserves 128 bytes for objects loaded later.
The five rest_* plugins depend on http_server and fail along with it.
PR: 298483
Reported by: marko.cupac@mimar.rs
Sponsored by: Netzkommune GmbH
databases/mysql*-server: make the rc script service jail aware
Set a default of net_basic for the service jail options, so mysqld
can use IPv4/IPv6 when it is started in a service jail. The default
can be overridden via rc.conf.
PR: 279672
Sponsored by: Netzkommune GmbH
databases/mysql{80,84,97}-server: Fix build on CPUs without SSE4.2
The crc32 code declares target("sse4.2"), but the _mm_crc32_* intrinsics
require the crc32 feature. With -mno-crc32, as emitted by -march=native
on a CPU without the instruction, sse4.2 no longer implies crc32 and the
build fails. Declare crc32 instead, including the two flatten wrappers that
inline those intrinsics.
PR: 275404
Sponsored by: Netzkommune GmbH
databases/mysql{80,84,97}-server: Add rc script and user for MySQL Router
All three server ports build and install MySQL Router, but it was never
usable out of the box: there is no mysqlrouter user, no rc script, no
configuration directory, and no log, runtime or data directory. The only
trace of an integration was etc/logrotate.d/mysqlrouter, whose
"create 600 mysqlrouter mysqlrouter" refers to an account that no port
creates, so logrotate(8) skipped that entry with an error and exited
non-zero.
Upstream names that account itself: scripts/CMakeLists.txt sets
MYSQLROUTER_USER to "mysqlrouter", the built-in help of mysqlrouter
suggests --user=mysqlrouter, and the systemd unit shipped for Linux runs
the service under it.
(Only the first 15 lines of the commit message are shown above )
databases/mysql*-server: Fix plist issue
Move LICENSE.router and README.router from ${PREFIX} to ${DOCSDIR},
where they belong according to hier(7).
PR: 290283
Reported by: se
Sponsored by: Netzkommune GmbH
databases/mysql84-{client,server}: Update to 8.4.11
This release contains the security fixes of the Oracle Critical
Patch Update of July 2026. 31 of the 54 MySQL issues apply to the
8.4 series and to the MySQL Router built from this port.
Changes:
https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-11.html
Security: 10f5d195-90a5-11f1-bc30-3497f65b111b
Sponsored by: Netzkommune GmbH
databases/mysql{84,97}: Install man pages, clean up dependencies
Re-enable installation of the man pages shipped in the source tarball
and register them in pkg-plist, split between the client and server
packages. Same approach as databases/mysql80-client in PR 279234.
Rework the dependencies based on actual linkage: libfido2 is only used
by the client, curl, icu and liblz4 only by the server. Drop libhidapi
entirely, it is a transitive dependency of libfido2.
While here, fix the CONFLICTS_INSTALL pattern of mysql84-client not
matching mysql80-client and update the mysql84 pkg-message.
Sponsored by: Netzkommune GmbH
databases/mysql84-{server|client}: Update to 8.4.9
Bugs Fixed
Fixed an issue relating to Information Schema privileges. (Bug
The SQL parser consumed a large amount of memory when parsing very
large queries with many large IN clauses.
As of this release, the SQL parser's memory management has been
improved. (Bug #105004, Bug #33390851)
Changelog: https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-9.html
Sponsored by: Netzkommune GmbH
databases/mysql84-{server|client}: Update to 8.4.8
Bugs Fixed
InnoDB: Under certain circumstances, when using the que_eval_sql
interface, a race condition could occur. (Bug #118705, Bug #38310595)
Running SET PERSIST on a system variable after an upgrade can result
in duplicate variable entries across different sections in
mysqld-auto.cnf. (Bug #38680162)
Binary log purged before persisted binlog_expire_* options were
loaded. (Bug #38554467)
When 2 of 6 instances in a geographically dispersed InnoDB Cluster
(Only the first 15 lines of the commit message are shown above )
databases/mysql84-server: fix build with clang and libc++ 19
As noted in the libc++ 19 release notes [1], std::char_traits<> is now
only provided for char, char8_t, char16_t, char32_t and wchar_t, and any
instantiation for other types will fail.
This causes databases/mysql84-server to fail to compile with clang 19
and libc++ 19, resulting in errors similar to:
/usr/include/c++/v1/string:820:42: error: implicit instantiation of
undefined template 'std::char_traits<unsigned char>'
820 | static_assert(is_same<_CharT, typename
traits_type::char_type>::value,
| ^
/wrkdirs/usr/ports/databases/mysql84-client/work/mysql-8.4.2/sql/rpl_log_encryption.h:821:14:
(Only the first 15 lines of the commit message are shown above )
databases/mysql84-{server|client}: add new Ports
Welcome MySQL 8.4
What is new in MySQL8.4 since MySQL 8.0:
https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html
HINT: MySQL8.2+ supports only 64-bit platforms!!!
special thanks for the majority of the work on this port: samm aka Alex
S.