| 組件 | 最低版本 | 檢查命令 |
| GCC | 4.8+ (建議 7+) | gcc --version |
| CMake | 3.5+ | cmake --version |
| Bison | 2.1+ | bison --version |
| OpenSSL | 1.0.1+ | openssl version |
| libaio | - | pkg info libaio (FreeBSD) |
FreeBSD 3.0+ 需使用原生線程庫,CMake 參數:-DWITH_NUMA=ON -DWITH_SSL=system
三、典型編譯安裝流程
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 \
-DWITH_INNODB_MEMCACHED=ON \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_DEBUG=OFF
gmake -j$(sysctl -n hw.ncpu)
gmake install
常見編譯問題對策
- 內存不足:添加
-DWITH_LOW_MEMORY=ON 或增加 swap
- 重新配置:
rm -f CMakeCache.txt && gmake clean 後重跑 cmake
- 權限錯誤:確保構建目錄擁有者為構建用戶,安裝階段需 root
四、初始化與啟停管理
1. 首次初始化數據目錄
# 創建專用用戶
pw groupadd mysql
pw useradd mysql -g mysql -s /sbin/nologin -d /usr/local/mysql
# 初始化(MySQL 5.7+)
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 設置目錄權限
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
2. 啟動/停止腳本
# 啟動
/usr/local/mysql/share/mysql/mysql.server start
# 停止(無密碼)
/usr/local/mysql/bin/mysqladmin -u root shutdown
# 停止(有密碼)
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
腳本權限:chmod 755 /usr/local/mysql/share/mysql/mysql.server
3. 開機自啟配置
FreeBSD /etc/rc.conf 添加:
mysql_enable="YES"
mysql_args="--user=mysql"
或將腳本鏈接至 /usr/local/etc/rc.d/。
五、安全與維護最佳實踐
- 運行 mysql_secure_installation:設置 root 密碼、移除匿名用戶、禁止遠程 root、刪除 test 庫
- 專用用戶運行:修改
mysql.server 中 mysql_daemon_user=mysql,避免 root 權限風險
- 新增數據庫後同步權限:
chown -R mysql:mysql /usr/local/mysql/data/new_db
- 定期執行 mysqlcheck -o:優化表碎片
- 監控錯誤日志:
tail -f /usr/local/mysql/data/.err
六、總結
源碼編譯安裝 MySQL 雖步驟較多,但每一步都可控。關鍵點在於:工具鏈版本達標、CMake 參數精準、專用用戶隔離權限、啟停腳本納入系統服務管理。掌握此流程,即可在任何 Unix-like 系統上構建穩定、高性能的 MySQL 實例。
- 上一篇文章: MySQL 兩種安裝形式對應的卸載策略差異解析
- 下一篇文章: MySQL 5.0 優化系列(四):ORDER BY、LIMIT、全表掃描、DML 性能深度解析
Copyright ©
程式碼之家 All Rights Reserved