方案一:官方二進制包部署(推薦生產)
目錄規劃
| 用途 | 路徑 |
| 安裝包下載 | /data/software |
| 程式安裝 | /usr/local/mysql |
| 資料目錄 | /data/mysql |
| 日誌目錄 | /data/log/mysql |
核心步驟
# 1. 下載
cd /data/software
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
# 2. 解壓改名
tar -xzf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql
# 3. 建立用戶與目錄權限
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql:mysql /usr/local/mysql /data/mysql
# 4. 初始化資料目錄(生成臨時 root 密碼)
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
# 記錄輸出的臨時密碼,如:YLi>7ecpe;YP
# 5. SSL/RSA 憑證生成
bin/mysql_ssl_rsa_setup --datadir=/data/mysql
# 6. 配置檔與啟動腳本
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
# 編輯 /etc/my.cnf 設定 basedir, datadir, port, socket, log-error 等
# 編輯 /etc/init.d/mysql 修正 basedir/datadir 路徑
# 7. 啟動並修改密碼
bin/mysqld_safe --user=mysql &
bin/mysql -u root -p # 輸入臨時密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'A123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'A123456';
mysql> FLUSH PRIVILEGES;
# 8. 環境變數與開機自啟
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
方案二:源碼編譯安裝(需自訂功能時)
前置編譯工具
# cmake 3.6+
tar -zxvf cmake-3.6.0.tar.gz && cd cmake-3.6.0 && ./bootstrap && make && make install
# bison 3.0.4+
tar -zxvf bison-3.0.4.tar.gz && cd bison-3.0.4 && ./configure && make && make install
編譯參數(含 Boost 自動下載)
cd /usr/local/src/mysql-5.7.13
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/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
# 缺 ncurses-devel 會報錯:yum -y install ncurses-devel
make && make install
後續初始化同方案一
同樣執行 mysqld --initialize、配置 my.cnf、啟動服務、修改密碼。
關鍵差異對照
| 維度 | 二進制包 | 源碼編譯 |
| 部署速度 | 分鐘級 | 十分鐘~半小時 |
| 字符集預設 | utf8 | 可指定 gbk/utf8mb4 |
| 功能裁剪 | 不可 | 可禁用無用引擎/功能 |
| 升級維護 | 替換二進制檔 | 需重新編譯 |