[[https://mariadb.org/|MariaDB]] is a drop-in replacement for %%MySQL%% [[https://en.wikipedia.org/wiki/MariaDB|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%%'' DEFAULT_VERSIONS+=mysql=102m ====== 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). * Installing the server will automatically installs the client as a dependency. 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. * When asked, it's recommended to **not** provide a root database user password. (Accessing the server console as the root database user is done simply with ''%%sudo mysql%%''.) /usr/local/bin/mysql_secure_installation Verify that %%MariaDB%% is only accessible via localhost $ sockstat -4 -6 | grep 3306 mysql mariadbd 989 33 tcp4 127.0.0.1:3306 *:* If the output lists ''%%127.0.0.1:3306%%'', then your server is not listening to remote connections. If ''%%*:3306%%'' is listed, then remote connections are enabled. ===== Troubleshooting ===== ==== Connections to localhost fail ==== Try connecting via the UNIX socket as specified in ''%%/usr/local/mysql/my.cnf%%'', like this: localhost:/var/run/mysql/mysql.sock ====== History ====== * 2010-11-17 [[https://freshports.org/databases/mariadb|databases/mariadb]] %%MariaDB%% 5.2 added by Geoffroy Desvernay (NOTE: %%MariaDB%% 5.2 has been removed from the ports tree). * 2011-06-06 [[https://freshports.org/databases/mariadb-server|databases/mariadb-server]] %%MariaDB%% 5.2.5 split into a -server and -client ports * 2012-04-20 databases/mariadb updated to 5.3 (NOTE: %%MariaDB%% 5.3 has been removed from the ports tree 2015-11-18). * 2013-01-05 [[https://freshports.org/databases/mariadb55-server|databases/mariadb55-server]] %%MariaDB%% 5.5 added by Alexandr Kovalenko. * 2014-11-04 [[https://freshports.org/databases/mariadb100-server|databases/mariadb100-server]] %%MariaDB%% 10.0 and all subsequent added by [[BernardSpil|Bernard Spil]] * 2016-02-13 [[https://freshports.org/databases/mariadb101-server|databases/mariadb101-server]] * 2017-01-15 [[https://freshports.org/databases/mariadb-connector-c|databases/mariadb-connector-c]] %%MariaDB%% C Connector 2.3 later updated to 3.0 * 2017-05-28 [[https://freshports.org/databases/mariadb102-server|databases/mariadb102-server]] %%MariaDB%% 10.2 * 2018-02-13 [[https://freshports.org/databases/mariadb-connector-c|databases/mariadb-connector-odbc]] %%MariaDB%% ODBC Connector 3.0 * 2018-06-09 [[https://freshports.org/databases/mariadb103-server|databases/mariadb103-server]] %%MariaDB%% 10.3 ===== Upcoming ===== %%MariaDB%% releases are generally [[https://mariadb.org/about/maintenance-policy/|supported for 5 years]] after the first General Availabiity release * 2019 Expected release of %%MariaDB%% 10.4 * 2019-03-31 Expected End-of-Life %%MariaDB%% 10.0 * 2020-04-11 Expected End-of-Life %%MariaDB%% 5.5 * 2020-10-17 Expected End-of-Life %%MariaDB%% 10.1 * 2022-05-23 Expected End-of-Life %%MariaDB%% 10.2 * 2023-05-25 Expected End-of-Life %%MariaDB%% 10.3 ====== 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 [[BernardSpil|Bernard Spil (brnrd)]]. The port consists of a master- (-server) and slave-port (-client) as of version 5.3 Extensive patching of the [[https://freshports.org/devel/cmake|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 [[https://jira.mariadb.org/|MariaDB JIRA]]. ===== Porting ===== 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 ==== - Disable ''%%post-install%%'' targets for both -client and -server, it deletes parts of the install tree. - Build the port. - run ''%%make makeplist%%'' and store the output. - 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%%'' - Update and enable ''%%post-install%%'' target. I've found the [[https://packages.debian.org/experimental/mariadb-client-10.3|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 or # 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 ==== ^ file**/**dir ^ reason ^ | ''%%mariadb-service-convert%%'' | generates ''%%mariadb.service%%'' for ''%%systemd%%'' | | share/mysql/policy | SELinux and %%AppArmor%% files | ===== Upstream issues ===== ==== MDEV-11790 ==== [[https://jira.mariadb.org/browse/MDEV-11790|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. ==== MDEV-15961 ==== [[https://jira.mariadb.org/browse/MDEV-11790|Fix stacktraces under FreeBSD]] Fixing aarch64 builds ---- {{tag>Ports HowTo}}