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 mysql97-server-9.7.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/mysql97-{client,server}: Update to 9.7.4
This release contains the security fixes of the Oracle Critical
Patch Update of October 2026. 73 of the 98 MySQL issues apply to the
9.7 series and to the MySQL Router built from this port.
9.7.3 was published without a source tarball, hence the two-step
jump.
Rebase patch-libmysql_CMakeLists.txt: upstream moved
mysql_native_authentication_client.cc into a subdirectory, dropped
ADD_SUBDIRECTORY(fido_client) and now builds the client-side
authentication plug-ins in the server tree as well. They are skipped
when WITHOUT_CLIENTLIBS is set.
Declare libfido2 and install the server-side WebAuthn plug-in, which
was built so far only when cmake happened to find libfido2 in the
build jail.
Changes:
https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-4.html
Security: 24aa87c0-d452-11f1-bae2-3497f65b111b
Sponsored by: Netzkommune GmbH
MFH: 2026Q4
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/mysql97-server: Add maintainer note per new ports policy
The maintainer load and port lifecycle policy only excludes a port from the
outdated ratio when the reason is documented in the port itself:
https://wiki.freebsd.org/Ports/MaintainerLoadAndPortLifecyclePolicy
repology merges every MySQL release series into a single project and measures
each of them against the newest train upstream ships. At the time of writing it
lists 26.7.0 as the newest MySQL and therefore reports this port as outdated,
although it carries 9.7.2, the latest release of its own series. The 26.x train
is not packaged in the tree at all, so this is a measurement artifact rather
than a pending update.
No functional change, comment only.
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/mysql97-{client,server}: Update to 9.7.2
This release contains the security fixes of the Oracle Critical
Patch Update of July 2026. 43 of the 54 MySQL issues apply to the
9.7 series and to the MySQL Router built from this port.
Drop patch-libs_mysql_gtid_tag__plain.h, the type_traits include
is upstream as of 9.7.2.
Changes:
https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-2.html
Security: 10f5f76e-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/mysql97: Fix build with llvm 21, directory ownership and cleanup
- Add upstream patches for missing #include <type_traits> and <cstdlib>,
fixing the build with clang/libc++ 21 [1] [2]
- Register MY_SECDIR and MY_TMPDIR with mysql:mysql 0750 in pkg-plist,
so mysqld no longer fails to start after package upgrades reset the
ownership to root [3]
- Fix CONFLICTS_INSTALL pattern in the client not matching
mysql80-client
and align it with the wildcard style used by the server
- Update pkg-message for 9.x: mysql_upgrade no longer exists, the server
performs upgrade tasks itself; fix version reference and quoting
- Drop duplicate -DWITH_LZ4=system, remove a stale line continuation,
whitespace fixes
- Rename patch-sql_server_component_mysql__file__imp.cc to follow the
patch naming convention
PR: 296439 [1], 296443 [2], 296758 [3]
Reported by: Trond Endrestøl [1] [2], Alexander Ushakov [3]
sponsored by: Netzkommune GmbH