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