MariaDB 作為 MySQL 社群分支,擁有更優秀的儲存引擎(Aria、XtraDB/InnoDB)、更好的效能與開放授權。本文記錄在 CentOS 5.10 32 位元 上,從原始碼編譯安裝 MariaDB 5.5.33a 的完整生產級部署流程,含系統預備、防火牆、SELinux、cmake 編譯、資料目錄初始化、服務註冊、安全性加固。
| 項目 | 設定值 |
|---|---|
| 作業系統 | CentOS 5.10 32-bit |
| MariaDB 版本 | 5.5.33a |
| 安裝前綴 | /usr/local/mysql |
| 資料目錄 | /data/mysql |
| 埠口 | 3306 |
| 執行用戶/組 | mysql:mysql |
配置靜態 IP、DNS、閘道,確保 SSH 連線正常、yum 可用。
vi /etc/sysconfig/iptables
# 在 22 埠規則下方添加(切勿加在最後 REJECT 之後)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
/etc/init.d/iptables restart

vi /etc/selinux/config
# SELINUX=enforcing
# SELINUXTYPE=targeted
SELINUX=disabled
shutdown -r now
yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++ \
gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils \
patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel \
keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel libXpm* \
freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* \
libpng* php-common php-gd gettext gettext-devel ncurses* libtool* \
libxml2 libxml2-devel patch policycoreutils bison
cd /usr/local/src
tar zxvf cmake-2.8.12.1.tar.gz
cd cmake-2.8.12.1
./configure && make && make install
groupadd mysql && useradd -g mysql -s /bin/false mysqlmkdir -p /data/mysql /usr/local/mysqlchown -R mysql:mysql /data/mysqlcd /usr/local/src && tar zxvf mariadb-5.5.33a.tar.gz && cd mariadb-5.5.33acmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etcmake && make installcd /usr/local/mysqlcp ./support-files/my-huge.cnf /etc/my.cnfvi /etc/my.cnf # [mysqld] 區段添加 datadir = /data/mysql./scripts/mysql_install_db --user=mysqlcp ./support-files/mysql.server /etc/rc.d/init.d/mysqldchmod 755 /etc/init.d/mysqldchkconfig mysqld onvi /etc/rc.d/init.d/mysqldbasedir=/usr/local/mysqldatadir=/data/mysqlservice mysqld startvi /etc/profile # 添加 export PATH=$PATH:/usr/local/mysql/binsource /etc/profilemysql_secure_installation # 互動式設定 root 密碼、移除匿名用戶、禁止遠程 root 登入、移除 test 庫ln -s /usr/local/mysql/lib/mysql /usr/lib/mysqlln -s /usr/local/mysql/include/mysql /usr/include/mysqlshutdown -r nowmysql -u root -pinnodb_buffer_pool_size = 物理記憶體 60-70%。slow_query_log、log_queries_not_using_indexes。server-id、log-bin、relay-log。mysqldump 或 xtrabackup 備份。遵循本流程,可在 CentOS 5 等舊版系統上穩定部署 MariaDB,為業務提供高效能關聯式資料庫服務。