%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 , , and libaio User Notes: Installation of MariaDB This version of MariaDB is a development release. The BLFS staff has determined that it provides a stable program and includes backported features from MySQL 5.6 and entirely new features not found anywhere else. To find the current stable release, please refer to the MariaDB home page. 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 \ -DTOKUDB_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.