CentOS 7 因版權考量預設整合了 MariaDB 作為 MySQL 的替代方案,若直接安裝 MySQL 會導致檔案衝突。本文詳細記錄從移除 MariaDB 到成功部署 MySQL 5.5.39 的完整流程,包含依賴處理、配置調整與常見錯誤排除。
首先檢查系統已安裝的 MariaDB 相關套件:
rpm -qa | grep mariadb
嘗試正常移除時會遇到 Postfix 依賴錯誤:
rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64 # 錯誤:依賴檢測失敗 # libmysqlclient.so.18 被 postfix 需要
需使用 --nodeps 強制移除:
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
yum install vim libaio net-tools
rpm -ivh /home/liwei/MySQL-server-5.5.39-2.el6.x86_64.rpm rpm -ivh /home/liwei/MySQL-client-5.5.39-2.el6.x86_64.rpm
複製預設配置範本:
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
編輯 /etc/my.cnf 根據實際需求調整參數。
mv /var/lib/mysql /home/mysql/data/
關鍵步驟:務必設定正確的擁有者與權限:
chown -R mysql:mysql /home/mysql/data chmod -R 755 /home/mysql/data
ERROR! The server quit without updating PID fileCan't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)解決方案:
mysql:mysql/etc/selinux/config,將 SELINUX=enforcing 改為 SELINUX=disabled,重啟主機若不強求 MySQL 官方版本,可直接使用 CentOS 內建 MariaDB:
yum -y install mariadb-server mariadb mariadb-devel systemctl start mariadb systemctl enable mariadb mysql_secure_installation firewall-cmd --permanent --add-service=mysql systemctl restart firewalld.service iptables -L -n | grep 3306
驗證安裝:
mysql -uroot -p show databases;
