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

CentOS 7 編譯安裝 MySQL 5.7 完整實戰筆記

     編輯:MySQL 資料庫相關知識

安裝規劃

項目路徑
MySQL 安裝目錄/usr/local/mysql
數據目錄/data/mysql
配置文件/usr/local/mysql/my.cnf

環境準備

1. 卸載系統預裝 MariaDB

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

2. 創建專用用戶/組

groupadd mysql
useradd -g mysql mysql -s /bin/false

3. 依賴庫編譯安裝

cd /usr/local/src/

# libunwind
wget https://download.savannah.gnu.org/releases/libunwind/libunwind-1.1.tar.gz
tar zxvf libunwind-1.1.tar.gz && cd libunwind-1.1
./configure && make && make install

# gperftools (tcmalloc)
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.5/gperftools-2.5.tar.gz
tar zxvf gperftools-2.5.tar.gz && cd gperftools-2.5
./configure && make && make install
echo "/usr/local/lib" > /etc/ld.so.conf.d/usr_local_lib.conf
ldconfig

MySQL 5.7 編譯安裝

下載源碼

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.x.tar.gz
tar zxvf mysql-5.7.x.tar.gz && cd mysql-5.7.x

CMake 關鍵參數配置

# 查看所有參數說明
cmake . -LH | more

# 正式編譯 (若報錯先刪除 CMakeCache.txt 重試)
rm -rf CMakeCache.txt

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/data/mysql \
  -DSYSCONFDIR=/etc \
  -DEXTRA_CHARSETS=all \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DENABLED_LOCAL_INFILE=1 \
  -DMYSQL_UNIX_ADDR=/dev/shm/mysql.sock \
  -DMYSQL_TCP_PORT=3306 \
  -DMYSQL_USER=mysql \
  -DWITH_DEBUG=0 \
  -DDOWNLOAD_BOOST=1 \
  -DWITH_BOOST=/usr/local/boost \
  && make -j$(nproc) && make install
關鍵參數解析:
  • -DDOWNLOAD_BOOST=1 -DWITH_BOOST=...:MySQL 5.7 依賴 Boost,自動下載指定版本避免版本不匹配
  • -DMYSQL_UNIX_ADDR=/dev/shm/mysql.sock:Socket 放入內存文件系統,提升本地連接效能
  • -DWITH_DEBUG=0:發布模式編譯,體積更小效能更高

初始化與配置

修正目錄權限

chmod 755 /var/lib/mysql
cd /usr/local/mysql
chown -R mysql:mysql .

初始化數據目錄 (5.7 新語法)

/usr/local/mysql/bin/mysqld --initialize \
  --basedir=/usr/local/mysql \
  --datadir=/data/mysql \
  --user=mysql \
  --explicit_defaults_for_timestamp=1
執行後輸出中包含 root@localhost: ,務必記錄臨時密碼。

配置文件部署

cp support-files/my-default.cnf /usr/local/mysql/my.cnf
# 編輯 my.cnf 根據實際硬件調整 innodb_buffer_pool_size 等核心參數

系統服務註冊

cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

首次啟動與安全加固

service mysqld start
# 修改 root 密碼
/usr/local/mysql/bin/mysqladmin -u root -p'臨時密碼' password 'NewStrongPass123!'
# 安全向導
/usr/local/mysql/bin/mysql_secure_installation

總結

編譯安裝雖步驟繁多,但能精確控制版本、優化參數、去除無用模組,是高性能 MySQL 部署的基石。生產環境建議結合 Ansible/Playbook 實現自動化部署,確保一致性與可複現性。

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