自動化部署MySQL的腳本
#!/bin/bash
# 配置參數
MYSQL_ROOT_PASSWORD="your_secure_password" # MySQL root用戶密碼
DB_USER="your_db_user" # 創建的數據庫用戶
DB_PASSWORD="your_db_password" # 數據庫用戶密碼
DB_NAME="your_db_name" # 創建的數據庫名稱
LOG_FILE="/var/log/mysql_deployment.log" # 日志文件路徑
# 檢查并創建日志文件
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# 記錄日志函數
log() {
echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOG_FILE"
}
# 安裝MySQL
log "開始安裝MySQL..."
sudo apt-get update
sudo apt-get install -y mysql-server mysql-client
# 檢查MySQL是否安裝成功
if ! command -v mysql &> /dev/null; then
log "MySQL安裝失敗,請檢查日志文件:$LOG_FILE"
exit 1
fi
log "MySQL安裝成功"
# 配置MySQL
log "開始配置MySQL..."
# 設置root用戶密碼
log "設置MySQL root用戶密碼..."
sudo mysql_secure_installation <<EOF
y
$MYSQL_ROOT_PASSWORD
$MYSQL_ROOT_PASSWORD
y
y
y
y
EOF
# 創建數據庫和用戶
log "創建數據庫和用戶..."
mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "CREATE DATABASE $DB_NAME;"
mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';"
mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
mysql -u root -p"$MYSQL_ROOT_PASSWORD" -e "FLUSH PRIVILEGES;"
log "數據庫和用戶創建成功"
# 配置MySQL的防火墻規則
log "配置MySQL的防火墻規則..."
sudo ufw allow mysql
log "MySQL部署完成!"
腳本說明
-
安裝MySQL:
-
使用
apt-get安裝MySQL服務器和客戶端。
-
-
配置MySQL:
-
使用
mysql_secure_installation腳本設置root用戶密碼并進行安全配置。 -
創建一個新的數據庫和用戶,并授予用戶對該數據庫的完全權限。
-
-
防火墻配置:
-
使用
ufw允許MySQL服務通過防火墻。
-
-
日志記錄:
-
所有操作都會記錄到指定的日志文件中,方便后續排查問題。
-