首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux 源碼編譯安裝 MySQL 5.7 完整實戰記錄(含坑點解決)

     編輯:MySQL 綜合教學

環境準備

  • OS:CentOS 7.x / RedHat 系列
  • 目標版本:MySQL 5.7.13
  • 依賴包:cmake、bison、ncurses-devel、boost

依賴安裝步驟

1. 安裝 CMake

# 檢查是否已安裝
rpm -qa | grep cmake

# 源碼安裝
tar zxvf cmake-3.6.0.tar.gz
cd cmake-3.6.0
./bootstrap
make && make install

2. 安裝 Bison

tar zxvf bison-3.0.4.tar.gz
cd bison-3.0.4
./configure
make && make install

3. 關鍵系統依賴

yum -y install ncurses-devel

MySQL 5.7 編譯安裝核心流程

1. 解壓並進入目錄

tar -zxvf mysql-5.7.13.tar.gz
cd mysql-5.7.13

2. CMake 預編譯配置(關鍵參數)

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=gbk \
-DDEFAULT_COLLATION=gbk_chinese_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
參數說明
CMAKE_INSTALL_PREFIX安裝根目錄
MYSQL_UNIX_ADDRSocket 檔案路徑
DEFAULT_CHARSET/COLLATION預設字符集/排序規則
WITH_*_STORAGE_ENGINE啟用儲存引擎
MYSQL_DATADIR數據目錄(建議獨立分區)
DDOWNLOAD_BOOST=1自動下載 Boost(5.7 必須)
DWITH_BOOSTBoost 存放/下載路徑

3. 常見編譯報錯與解決

錯誤 1:找不到 Boost

CMake Error: Could NOT find BOOST
解決:加上 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

錯誤 2:Curses library not found

CMake Error: Curses library not found
解決:
1) yum -y install ncurses-devel
2) rm CMakeCache.txt
3) 重新執行 cmake

4. 編譯與安裝

make -j$(nproc)  # 多核並行編譯
make install

安裝後初始化配置

1. 建立 mysql 用戶與目錄權限

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /data/mysqldb
chown -R mysql:mysql /usr/local/mysql /data/mysqldb

2. 初始化數據目錄(5.7 新方式)

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb

⚠️ 輸出中會生成臨時 root 密碼,請妥善保存:[Note] A temporary password is generated for root@localhost: xxxx

3. 配置檔部署

cp support-files/my-default.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 確認 basedir、datadir、socket、port、字符集等

4. 服務腳本與啟動

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

5. 首次登錄修改密碼

mysql -uroot -p'臨時密碼'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
FLUSH PRIVILEGES;

6. 環境變數

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

驗證安裝

mysql -V
mysql -uroot -p -e "SHOW VARIABLES LIKE 'version'; SHOW ENGINES;"

關鍵差異提示(5.7 vs 5.6)

  • 強制需要 Boost 庫
  • mysql_install_db 棄用,改用 mysqld --initialize
  • 預設啟用 validate_password 插件,密碼策略嚴格
  • sql_mode 預設包含 ONLY_FULL_GROUP_BY 等嚴格模式
  • 預設字符集建議改為 utf8mb4
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved