LFS Linux 安装MariaDB-10.3.14
MariaDB-10.3.14
Introduction to MariaDB
MariaDB is a community-developed fork and a drop-in replacement for the MySQL relational database management system.
This package is known to build and work properly using an LFS-8.4 platform.
Package Information
-
Download (HTTP): https://downloads.mariadb.org/interstitial/mariadb-10.3.14/source/mariadb-10.3.14.tar.gz
-
Download (FTP): ftp://mirrors.fe.up.pt/pub/mariadb/mariadb-10.3.14/source/mariadb-10.3.14.tar.gz
-
Download MD5 sum: b1b9628bbc3ff15e8f5cfc7896c73975
-
Download size: 67 MB
-
Estimated disk space required: 1.4 GB
-
Estimated build time: 12 SBU (with parallelism=4, add 0.4 SBU for tests)
Note
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
Boost-1.70.0, libxml2-2.9.9, Linux-PAM-1.3.1, MIT Kerberos V5-1.17, PCRE-8.43, Ruby-2.6.3, unixODBC-2.3.7, Valgrind-3.15.0, Groonga, KyTea, Judy, libaio, lz4, MeCab, MessagePack, mruby, Sphinx, TokuDB, and ZeroMQ
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/mariadb
Installation of MariaDB
Warning
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-10.3.14 \ -DINSTALL_DOCREADMEDIR=share/doc/mariadb-10.3.14 \ -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.
Note
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.
-DWITHOUT_SERVER=ON
: Use this switch if you don't want the server and would like to build the client only.
Note
There are numerous options available to cmake. Check the output of the cmake . -LH for additional customization options.
Configuring MySQL
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
Boot Script
Install the /etc/rc.d/init.d/mysql
init script included in the blfs-bootscripts-20190313 package as the root
user to start the MariaDB server during system boot-up.
make install-mysql
Contents
Short Descriptions
The Perl DBI modules must be installed for some of the MariaDB support programs to function properly.
Short Descriptions
is used to check, repair, optimize, sort and get information about Aria tables. | |
is a tool to dump content of Aria log pages. | |
displays full-text index information. | |
is a tool to generate compressed, read-only Aria tables. | |
displays Aria log file contents. | |
prints checksums for InnoDB files. | |
is an open source backup tool for InnoDB and XtraDB. | |
gets compiler flags for using the MariaDB Connector/C. | |
is an utility for sending InnoDB and XTraDB backups over a stream | |
is a tool to convert mSQL programs for use with MySQL. | |
displays the options from option groups of option files. | |
displays information about FULLTEXT indexes in MyISAM tables. | |
gets information about your database tables or checks, repairs, or optimizes them. | |
displays MyISAM log file contents. | |
is a tool for compressing MyISAM tables. | |
is a simple SQL shell with input line editing capabilities. | |
is used for testing aspects of the MySQL client API that cannot be tested using mysqltest and its test language. | |
is a tool to test client API for embedded server. | |
provides you with useful information for compiling your MySQL client and connecting it to MySQL. | |
converts the tables in a database to use a particular storage engine. | |
is a MySQL client statically linked to libmysqld. | |
reads files containing SQL statements and extracts statements that match a given regular expression or that contain USE db_name or SET statements. | |
converts the extensions for MyISAM (or ISAM ) table files to their canonical forms. | |
initializes the MySQL data directory and creates the system tables that it contains, if they do not exist. | |
is the RocksDB tool. | |
is a utility that enable MySQL administrators to manage which plugins a MySQL server loads. | |
is a tool to improve MySQL installation security. | |
sets permissions in the MySQL grant tables. | |
loads the time zone tables in the mysql database. | |
examines all tables in all databases for incompatibilities with the current version of MySQL Server. | |
signals a process to terminate and waits for the process to exit. | |
checks the access privileges for a host name, user name, and database combination. | |
is a client for performing administrative operations. | |
read binary log files. | |
performs table maintenance: It checks, repairs, optimizes, or analyzes tables. | |
is the MySQL server daemon. | |
is designed to manage several mysqld processes that listen for connections on different Unix socket files and TCP/IP ports. | |
is the recommended way to start a mysqld server on Unix and NetWare. | |
is a backup program. | |
parses MySQL slow query log files and prints a summary of their contents. | |
locks the table, flush the table and then performs a copy of the database. | |
reads a range of data formats, and inserts the data into a database. | |
shows the structure of a MariaDB database. | |
is a diagnostic program designed to emulate client load for a MySQL server and to report the timing of each stage. | |
runs a test case against a MySQL server and optionally compares the output with a result file. | |
is similar to the mysqltest command but is built with support for the libmysqld embedded server. | |
is a console-based tool for monitoring the threads and overall performance of a MySQL server. | |
is a utility that displays descriptions for system or storage engine error codes. | |
is a MariaDB/MySQL extension to the SQL standard. | |
resolves a numeric stack dump to symbols. | |
is a utility for resolving IP addresses to host names and vice versa. | |
dumps the content of sst files (the format used by RocksDB). |
Last updated on 2019-04-07 13:56:47 -0500
目录 返回
首页