%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. &lfs74_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; MariaDB Dependencies Required and Recommended Optional libaio User Notes: Installation of MariaDB 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 && sed -i "s/srv_buf_size/srv_sort_buf_size/" storage/innobase/row/row0log.cc && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DINSTALL_DOCDIR=share/doc/mysql \ -DINSTALL_DOCREADMEDIR=share/doc/mysql \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/mysql \ -DINSTALL_MYSQLTESTDIR=share/mysql/test \ -DINSTALL_PLUGINDIR=lib/mysql \ -DINSTALL_SBINDIR=sbin \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share/mysql \ -DINSTALL_SUPPORTFILESDIR=share/mysql \ -DMYSQL_DATADIR=/srv/mysql \ -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \ -DWITH_EXTRA_CHARSETS=complex \ -DWITH_LIBEVENT=system \ -DBOOST_OK=0 \ .. && make To test the results, issue: make test. Now, as the root user: make install Command Explanations sed -i ...: First sed sets correct installation directory for some components. Second sed fixes a bug in the code. -DWITH_EXTRA_CHARSETS=complex: This switch enables support for the complex character sets. -DWITH_LIBEVENT=system: This switch is used to tell the build system to use installed libevent. Remove it if you didn't install libevent. : Use these switches if you don't want the server and would like to build the client only. : This switch enables compiling the embedded server library needed by certain applications, such as Amarok. 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 # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /srv/mysql #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /srv/mysql # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #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 /var/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. Replace <new-password> with your own. mysqladmin -u root password <new-password> Configuration of the server is now finished. Shut the server down using the following command as the root user: mysqladmin -p shutdown Boot Script Install the /etc/rc.d/init.d/mysql init script included in the package as the root user to start the MariaDB server during system boot-up. mysql make install-mysql Contents Installed Programs Installed Libraries Installed Directories aria_chk, aria_dump_log, aria_ftdump, aria_pack, aria_read_log, innochecksum, msql2mysql, myisamchk, myisam_ftdump, myisamlog, myisampack, my_print_defaults, mysql, mysqlaccess, mysqladmin, mysqlbinlog, mysqlbug, mysqlcheck, mysql_client_test, mysql_client_test_embedded, mysql_config, mysql_convert_table_format, mysqld, mysqld_multi, mysqld_safe, mysqldump, mysqldumpslow, mysql_embedded, mysql_find_rows, mysql_fix_extensions, mysqlhotcopy, mysqlimport, mysql_install_db, mysql_plugin, mysql_secure_installation, mysql_setpermission, mysqlshow, mysqlslap, mysqltest, mysqltest_embedded, mysql_tzinfo_to_sql, mysql_upgrade, mysql_waitpid, mysql_zap, mytop, perror, replace, resolveip, resolve_stack_dump, and tokuftdump libmysqlclient.{so,a}, libmysqlclient_r.{so,a}, libmysqld.{so,a}, and libmysqlservices.a /etc/mysql, /srv/mysql, /usr/include/mysql, /usr/lib/mysql, /usr/share/doc/mysql, and /usr/share/mysql Short Descriptions Descriptions of all the programs and libraries would be several pages long. Instead, consult the man pages or the online documentation at . The Perl DBI modules must be installed for some of the MariaDB support programs to function properly.