MariaDB is a drop-in replacement for MySQL forked from MySQL by some of the original developers of MySQL after Oracle acquired Sun (and thus acquired MySQL).

To use MariaDB instead of (the default) MySQL, set in /etc/make.conf


MariaDB server installation

There are many versions of MariaDB available in the repos. Use this command to list all available versions.

pkg search mariadb | grep server

Install the version you wish (typically the latest version, replace the XXX in the command below with the desired version number listed above).

sudo pkg install mariadbXXX-server

Set MariaDB to start at boot

sudo sysrc mysql_enable=YES

Start MariaDB

sudo service mysql-server start

Run this interactive script to perform basic security hardening of the installation.


Verify that MariaDB is only accessible via localhost

$ sockstat -4 -6 | grep 3306
mysql    mariadbd   989   33 tcp4        *:*

If the output lists, then your server is not listening to remote connections. If *:3306 is listed, then remote connections are enabled.


Connections to localhost fail

Try connecting via the UNIX socket as specified in /usr/local/mysql/my.cnf, like this:




MariaDB releases are generally supported for 5 years after the first General Availabiity release

MariaDB 5.2 - 10.2

The MariaDB port was initially created by Geoffroy Desvernay. The MariaDB 5.5 port was created by Alexandr Kovalenko and the basis for the later 10.x versions created by Bernard Spil (brnrd). The port consists of a master- (-server) and slave-port (-client) as of version 5.3

Extensive patching of the cmake files was done to work around conflicts between the -client and -server ports.

MariaDB 10.3 -

This version removes the cmake patching and replaces it with @comment prefixes in pkg-plist. The only CMakeFiles.txt patching that's going on must have an accompanying issue in MariaDB JIRA.


The WITHOUT_SERVER flag for cmake isn't very stable, files move in and out. This results in install conflicts when the port is updated.

Generate clean pkg-plist

  1. Disable post-install targets for both -client and -server, it deletes parts of the install tree.

  2. Build the port.
  3. run make makeplist and store the output.

  4. compare makeplist output for -client and -server and add @comment in pkg-plist where changes are required (bear in mind the post-install target).
    ls -l $(sed -n 's|^@comment |work/stage/usr/local/|p' pkg-plist) >/dev/null

  5. Update and enable post-install target.

I've found the Debian packages to be helpful in deciding what's client and what's server.

Check duplicate @comment lines

for file in `sed -n 's|^@comment ||p' pkg-plist` ; do grep "^@comment $file" ../mariadb103-client/pkg-plist ; done


# files marked @comment show up with a number higher than 1
grep '^@comment ' mariadb103-*/pkg-plist | cut -d: -f2 | sort | uniq -c

Things not needed on FreeBSD




generates mariadb.service for systemd


SELinux and AppArmor files

Upstream issues


WITHOUT_SERVER installs server-only files Tries to address inconsistencies in the cmake files. This is a patch in the ports tree for 10.3.


Fix stacktraces under FreeBSD Fixing aarch64 builds

CategoryPorts CategoryHowTo

MariaDB (last edited 2021-06-02T23:03:00+0000 by GaelanLloyd)