# 1. 系統用戶 sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql # 2. 解壓並重命名目錄(含端口號便於識別) cd /usr/local sudo tar -zxvf /path/to/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz sudo mv mysql-5.7.14-linux-glibc2.5-x86_64 mysql-5.7.14-linux-glibc2.5-x86_64-3306 sudo ln -s mysql-5.7.14-linux-glibc2.5-x86_64-3306 mysql-3306 # 3. 目錄權限 cd mysql-3306 sudo mkdir mysql-files sudo chmod 750 mysql-files sudo chown -R mysql:mysql . # 4. 專屬配置檔 sudo cp support-files/my-default.cnf ./my.cnf # 編輯 my.cnf: # basedir = /usr/local/mysql-3306 # datadir = /usr/local/mysql-3306/data # port = 3306 # server_id = 11 # 5. 初始化(生成臨時密碼) sudo bin/mysqld --defaults-file=/usr/local/mysql-3306/my.cnf --initialize --user=mysql # 6. SSL 憑證 sudo bin/mysql_ssl_rsa_setup --defaults-file=/usr/local/mysql-3306/my.cnf # 7. 權限收尾 sudo chown -R root . sudo chown -R mysql data mysql-files # 8. 啟動(後台) sudo bin/mysqld_safe --defaults-file=/usr/local/mysql-3306/my.cnf --user=mysql & # 9. 登入修改密碼並授權遠程 mysql -u root -p # 輸入臨時密碼 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpass'; mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpass' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
| 實例 | 目錄後綴 | port | server_id | socket |
|---|---|---|---|---|
| 3306 | -3306 | 3306 | 11 | /tmp/mysql-3306.sock |
| 3307 | -3307 | 3307 | 12 | /tmp/mysql-3307.sock |
| 3308 | -3308 | 3308 | 13 | /tmp/mysql-3308.sock |
| 3309 | -3309 | 3309 | 14 | /tmp/mysql-3309.sock |
每新增一個實例:
1. 重新解壓並改名目錄
2. 修改 my.cnf 對應 port/server_id/socket/datadir
3. 執行 --initialize、mysql_ssl_rsa_setup
4. 不同 socket 啟動 mysqld_safe
將啟動/停止/狀態檢查封裝為 mysql-3306 {start|stop|status} 腳本,配合 systemd 或 supervisor 托管。