%general-entities; ]> $LastChangedBy$ $Date$ MariaDB-&mariadb-version; MariaDB Introduction to MariaDB MariaDB is a community-developed fork and a drop-in replacement for the MySQL relational database management system. &lfs90_checked; Package Information Download (HTTP): Download (FTP): Download MD5 sum: &mariadb-md5sum; Download size: &mariadb-size; Estimated disk space required: &mariadb-buildsize; Estimated build time: &mariadb-time; The installed size of MariaDB is 473 MB, but this can be reduced by about 200 MB, if desired, by removing the /usr/share/mysql/test directory after installation. MariaDB Dependencies Required Recommended Optional , , , , , , , , , Groonga, KyTea, Judy, lz4, MeCab, MessagePack, mruby, Sphinx, TokuDB, and ZeroMQ User Notes: Installation of MariaDB MariaDB and MySQL cannot be installed on the same system without extensive changes to the build configuration of one of the two applications. For security reasons, running the server as an unprivileged user and group is strongly encouraged. Issue the following (as root) to create the user and group: groupadd -g 40 mysql && useradd -c "MySQL Server" -d /srv/mysql -g mysql -s /bin/false -u 40 mysql Install MariaDB by running the following commands: sed -i "s@data/test@\${INSTALL_MYSQLTESTDIR}@g" sql/CMakeLists.txt && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DINSTALL_DOCDIR=share/doc/mariadb-&mariadb-version; \ -DINSTALL_DOCREADMEDIR=share/doc/mariadb-&mariadb-version; \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_MYSQLTESTDIR=share/mysql/test \ -DINSTALL_PLUGINDIR=lib/mysql/plugin \ -DINSTALL_SBINDIR=sbin \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share/mysql/bench \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DMYSQL_DATADIR=/srv/mysql \ -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_EMBEDDED_SERVER=ON \ -DSKIP_TESTS=ON \ -DTOKUDB_OK=0 \ .. && make To test the results, issue: make test. One test, test-connect, is known to fail. A more extensive set of tests can be run with the following: pushd mysql-test ./mtr --parallel <N> --mem --force popd Where N is the number of tests to run in parallel. A little over 3700 tests are run in about 14 SBU with N=4. Three tests are known to fail due to character set issues. Now, as the root user: make install Command Explanations sed -i ... sql/CMakeLists.txt: Set correct installation directory for some components. -DWITH_EMBEDDED_SERVER=ON: This switch enables compiling the embedded server library needed by certain applications, such as Amarok.. -DWITH_EXTRA_CHARSETS=complex: This switch enables support for the complex character sets. -DSKIP_TESTS=ON: This switch disables tests for MariaDB Connector/C which are not supported without additional setup. : Use this switch if you don't want the server and would like to build the client only. There are numerous options available to cmake. Check the output of the cmake . -LH for additional customization options. Configuring MySQL Config Files /etc/mysql/my.cnf and ~/.my.cnf ~/.my.cnf /etc/mysql/my.cnf Configuration Information Create basic /etc/mysql/my.cnf using the following command as the root user: install -v -dm 755 /etc/mysql && cat > /etc/mysql/my.cnf << "EOF" # Begin /etc/mysql/my.cnf # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /run/mysqld/mysqld.sock # The MySQL server [mysqld] port = 3306 socket = /run/mysqld/mysqld.sock datadir = /srv/mysql skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M sort_buffer_size = 512K net_buffer_length = 16K myisam_sort_buffer_size = 8M # Don't listen on a TCP/IP port at all. skip-networking # required unique id between 1 and 2^32 - 1 server-id = 1 # Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 # InnoDB tables are now used by default innodb_data_home_dir = /srv/mysql innodb_log_group_home_dir = /srv/mysql # All the innodb_xxx values below are the default ones: innodb_data_file_path = ibdata1:12M:autoextend # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high innodb_buffer_pool_size = 128M innodb_log_file_size = 48M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout # End /etc/mysql/my.cnf EOF You can now install a database and change the ownership to the unprivileged user and group (perform as the root user): mysql_install_db --basedir=/usr --datadir=/srv/mysql --user=mysql && chown -R mysql:mysql /srv/mysql Further configuration requires that the MariaDB server is running. Start the server using the following commands as the root user: install -v -m755 -o mysql -g mysql -d /run/mysqld && mysqld_safe --user=mysql 2>&1 >/dev/null & A default installation does not set up a password for the administrator, so use the following command as the root user to set one. mysqladmin -u root password Configuration of the server is now finished. Shut the server down using the following command as the root user: mysqladmin -p shutdown <phrase revision="sysv">Boot Script</phrase> <phrase revision="systemd">Systemd Unit</phrase> Install the /etc/rc.d/init.d/mysql init script mysqld.service unit included in the package as the root user to start the MariaDB server during system boot-up. mysql make install-mysql make install-mysqld Contents Installed Programs Installed Libraries Installed Directories aria_chk, aria_dump_log, aria_ftdump, aria_pack, aria_read_log, innochecksum, mariabackup, mariadb_config, mbstream, msql2mysql, my_print_defaults, myisamchk, myisam_ftdump, myisamchk, myisamlog, myisampack, mysql, mysql_client_test, mysql_client_test_embedded, mysql_config, mysql_convert_table_format, mysql_embedded, mysql_find_rows, mysql_fix_extensions, mysql_install_db, mysql_ldb, mysql_plugin, mysql_secure_installation, mysql_setpermission, mysql_tzinfo_to_sql, mysql_upgrade, mysql_waitpid, mysqlaccess, mysqladmin, mysqlbinlog, mysqlcheck, mysqld, mysqld_multi, mysqld_safe, mysqld_safe_helper, mysqldump, mysqldumpslow, mysqlhotcopy, mysqlimport, mysqlshow, mysqlslap, mysqltest, mysqltest_embedded, mytop, perror, replace, resolve_stack_dump, resolveip, sst_dump, wsrep_sst_common, wsrep_sst_mariabackup, wsrep_sst_mysqldump, wsrep_sst_rsync, wsrep_sst_xtrabackup, and wsrep_sst_xtrabackup-v2 libmariadbclient.a, libmariadb.so, libmysqlclient.a, libmysqlclient_r.a (symbolic links to libmariadbclient.a), libmysqld.{so,a}, libmysqlservices.a, and several under /usr/lib/mysql/plugin/ /etc/mysql, /usr/{include,lib,share}/mysql, and /usr/share/doc/mariadb-&mariadb-version; Short Descriptions The Perl DBI modules must be installed for some of the MariaDB support programs to function properly. Short Descriptions aria_chk is used to check, repair, optimize, sort and get information about Aria tables. aria_chk aria_dump_log is a tool to dump content of Aria log pages. aria_dump_log aria_ftdump displays full-text index information. aria_ftdump aria_pack is a tool to generate compressed, read-only Aria tables. aria_pack aria_read_log displays Aria log file contents. aria_read_log innochecksum prints checksums for InnoDB files. innochecksum mariabackup is an open source backup tool for InnoDB and XtraDB. mariabackup mariadb_config gets compiler flags for using the MariaDB Connector/C. mariadb_config mbstream is an utility for sending InnoDB and XTraDB backups over a stream mbstream msql2mysql is a tool to convert mSQL programs for use with MySQL. msql2mysql my_print_defaults displays the options from option groups of option files. my_print_defaults myisam_ftdump displays information about FULLTEXT indexes in MyISAM tables. myisam_ftdump myisamchk gets information about your database tables or checks, repairs, or optimizes them. myisamchk myisamlog displays MyISAM log file contents. myisamlog myisampack is a tool for compressing MyISAM tables. myisampack mysql is a simple SQL shell with input line editing capabilities. mysql mysql_client_test is used for testing aspects of the MySQL client API that cannot be tested using mysqltest and its test language. mysql_client_test mysql_client_test_embedded is a tool to test client API for embedded server. mysql_client_test_embedded mysql_config provides you with useful information for compiling your MySQL client and connecting it to MySQL. mysql_config mysql_convert_table_format converts the tables in a database to use a particular storage engine. mysql_convert_table_format mysql_embedded is a MySQL client statically linked to libmysqld. mysql_embedded mysql_find_rows reads files containing SQL statements and extracts statements that match a given regular expression or that contain USE db_name or SET statements. mysql_find_rows mysql_fix_extensions converts the extensions for MyISAM (or ISAM ) table files to their canonical forms. mysql_fix_extensions mysql_install_db initializes the MySQL data directory and creates the system tables that it contains, if they do not exist. mysql_install_db mysql_ldb is the RocksDB tool. mysql_ldb mysql_plugin is a utility that enable MySQL administrators to manage which plugins a MySQL server loads. mysql_plugin mysql_secure_installation is a tool to improve MySQL installation security. mysql_secure_installation mysql_setpermission sets permissions in the MySQL grant tables. mysql_setpermission mysql_tzinfo_to_sql loads the time zone tables in the mysql database. mysql_tzinfo_to_sql mysql_upgrade examines all tables in all databases for incompatibilities with the current version of MySQL Server. mysql_upgrade mysql_waitpid signals a process to terminate and waits for the process to exit. mysql_waitpid mysqlaccess checks the access privileges for a host name, user name, and database combination. mysqlaccess mysqladmin is a client for performing administrative operations. mysqladmin mysqlbinlog read binary log files. mysqlbinlog mysqlcheck performs table maintenance: It checks, repairs, optimizes, or analyzes tables. mysqlcheck mysqld is the MySQL server daemon. mysqld mysqld_multi is designed to manage several mysqld processes that listen for connections on different Unix socket files and TCP/IP ports. mysqld_multi mysqld_safe is the recommended way to start a mysqld server on Unix and NetWare. mysqld_safe mysqldump is a backup program. mysqldump mysqldumpslow parses MySQL slow query log files and prints a summary of their contents. mysqldumpslow mysqlhotcopy locks the table, flush the table and then performs a copy of the database. mysqlhotcopy mysqlimport reads a range of data formats, and inserts the data into a database. mysqlimport mysqlshow shows the structure of a MariaDB database. mysqlshow mysqlslap is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage. mysqlslap mysqltest runs a test case against a MySQL server and optionally compares the output with a result file. mysqltest mysqltest_embedded is similar to the mysqltest command but is built with support for the libmysqld embedded server. mysqltest_embedded mytop is a console-based tool for monitoring the threads and overall performance of a MySQL server. mytop perror is a utility that displays descriptions for system or storage engine error codes. perror replace is a MariaDB/MySQL extension to the SQL standard. replace resolve_stack_dump resolves a numeric stack dump to symbols. resolve_stack_dump resolveip is a utility for resolving IP addresses to host names and vice versa. resolveip sst_sump dumps the content of sst files (the format used by RocksDB). sst_sump