cd /usr/local/src
tar -zxvf mysql-8.0.36.tar.gz
cd mysql-8.0.36
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNODB=ON \
-DWITH_PARTITION_STORAGE_ENGINE=ON \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
常用選項說明:
make -j$(nproc) # 並行編譯加速
make install
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
# 記錄輸出中的臨時 root 密碼
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/data/mysql/mysql.sock
port=3306
user=mysql
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=1G
# ... 其他參數
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 或建立 systemd unit 檔
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
mysql -u root -p'臨時密碼'
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongP@ssw0rd!';
mysql_secure_installation
/usr/local/mysql/bin/mysqlshow -u root -p
# 應顯示系統資料庫列表
| 優點 | 缺點 |
|---|---|
| 高度客製化 (功能裁剪、路徑、參數) | 流程繁瑣、耗時、易出錯 |
| 效能優化 (CPU 指令集、靜態連結) | 升級維護成本高、無套件管理器支援 |
| 最新功能搶鮮體驗 | 相依庫版本衝突風險 |
| 學習內部機制 | 生產環境建議使用官方 RPM/DEB |
除非有特殊定製需求,**生產環境強烈建議使用官方預編譯套件 (RPM/DEB) 或容器部署**。