首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux/Unix 平台 MySQL 安裝部署指南:RPM 包與源碼編譯雙軌實戰

     編輯:MySQL 資料庫相關知識

前言

在 Linux/Unix 系統部署 MySQL,主流有兩條路徑:二進制 RPM 包(快速、標準化) 與 源碼編譯/通用二進制包(靈活、可控)。本文提供雙軌完整操作手冊,涵蓋安裝、初始化、安全加固、服務管理。

軌道一:RPM 包安裝(適用 RHEL/CentOS/Fedora/openSUSE)

1. 獲取官方 RPM 包

下載頁:MySQL YUM/RPM Repository

核心包(以 8.0 為例):

  • mysql-community-server-8.0.xx:服務端
  • mysql-community-client-8.0.xx:客戶端工具
  • mysql-community-libs-8.0.xx:共享庫
  • mysql-community-common-8.0.xx:公共文件

2. 最小化安裝步驟

# 安裝服務端(自動拉取依賴)
rpm -ivh mysql-community-server-8.0.xx.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.xx.el7.x86_64.rpm
# 或一次性安裝所有下載的 rpm
rpm -ivh mysql-community-*.rpm

3. 關鍵後續動作

  1. 啟動服務並設置開機自啟:
systemctl start mysqld
systemctl enable mysqld
  1. 獲取臨時 root 密碼並修改:
# 8.0+ 生成隨機臨時密碼於錯誤日志
grep 'temporary password' /var/log/mysqld.log
# 登入修改
mysql -uroot -p'TempPass!'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass!';
# 或運行安全腳本
mysql_secure_installation
  1. 防火牆放行:
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

軌道二:通用二進制包 / 源碼編譯(通用 Unix/Linux)

1. 通用二進制包部署

# 下載 Linux Generic (x86_64) Compressed TAR Archive
tar -xzf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz -C /usr/local
ln -s /usr/local/mysql-8.0.xx /usr/local/mysql

# 創建用戶與目錄
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql

# 初始化數據目錄(8.0+)
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

# 配置 my.cnf
cat > /etc/my.cnf <

2. 源碼編譯安裝(CMake)

# 依賴安裝
yum install -y cmake gcc gcc-c++ ncurses-devel bison openssl-devel libaio-devel

# 構建
cd mysql-8.0.xx
mkdir build && cd build
cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DSYSCONFDIR=/etc \
  -DWITH_BOOST=../boost \
  -DDEFAULT_CHARSET=utf8mb4 \
  -DDEFAULT_COLLATION=utf8mb4_general_ci \
  -DWITH_INNODB_MEMCACHED=ON \
  -DWITH_DEBUG=OFF

make -j$(nproc)
make install

# 後續初始化、配置、啟動同二進制包

三、跨平台差異速查表

項目RPM/系統包二進制包/源碼
安裝路徑/usr/bin, /var/lib/mysql, /etc/my.cnf/usr/local/mysql (自定義)
服務管理systemd (mysqld.service)SysV init (/etc/init.d/mysqld) 或 systemd 自建
用戶/組自動創建 mysql:mysql手動創建
升級方式yum/dnf update / rpm -Uvh重新編譯/替換目錄 + 升級腳本
適用場景標準化運維、批量部署版本自定義、非標準路徑、舊系統

四、安裝後通用安全加固清單

  1. 運行 mysql_secure_installation(設置 root 密碼、移除匿名用戶、禁止 root 遠程、刪除 test 庫)
  2. 創建業務專用用戶,最小權限授權
  3. 配置 bind-address 限制監聽接口
  4. 啟用 SSL:mysql_ssl_rsa_setup 生成證書
  5. 設置 max_connections、innodb_buffer_pool_size 等核心參數
  6. 建立備份策略:mysqldump / xtrabackup + 定時任務 + 異地存儲
  7. 監控接入:Prometheus + mysqld_exporter / PMM / Zabbix

五、常見安裝問題排查

  • libaio 缺失:yum install libaio / apt install libaio1
  • 端口衝突:netstat -tlnp | grep 3306 → 修改 port 或停止佔用進程
  • SELinux 阻擋:setsebool -P mysql_connect_any=1 或調整上下文
  • 權限錯誤:確保 datadir 擁有者為 mysql 用戶
  • 臨時密碼過期:8.0+ 首次登入必須修改密碼才能執行其他語句

總結

RPM 包適合追求標準化、自動化運維的企業環境;二進制包/源碼編譯適合需要版本控制、路徑自定義、舊系統適配的場景。無論哪條軌道,初始化數據目錄、設置強密碼、配置服務管理、安全加固 四步缺一不可。建議建立標準化安裝腳本/Ansible Playbook,實現基礎設施即代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved