自动化部署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服务通过防火墙。
- 使用
- 日志记录:
- 所有操作都会记录到指定的日志文件中,方便后续排查问题。