Shell编程语言可算得上是运维人员必须掌握的一种技能了,Shell 基于命令行界面,通过运行脚本文件可以快速地完成一系列操作,并且 Shell 脚本可以与 Unix/Linux系统命令无缝衔接,使得编写自动化部署脚本变得非常方便和高效。
以下就是我之前编写的自动化部署 MySQL 的 Shell 脚本,仅供参考:
#!/bin/bash
# MySQL 自动化安装脚本
# 安装 MySQL
install_mysql()
{
# 删除旧版本 MySQL
echo "Removing old MySQL installations..."
sudo apt-get remove mysql-server mysql-common mysql-client libmysqlclient-dev -y
# 创建安装目录
echo "Creating MySQL installation directory..."
sudo mkdir -p /opt/mysql && cd /opt/mysql
# 下载 MySQL 安装包
echo "Downloading MySQL 5.7..."
sudo wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
# 解压缩安装包
echo "Extracting MySQL installation package..."
sudo tar zxf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
# 重命名 MySQL 安装目录
sudo mv mysql-5.7.35-linux-glibc2.12-x86_64 /opt/mysql/mysql
# 创建 MySQL 数据目录
echo "Creating MySQL data directory..."
sudo mkdir -p /opt/mysql/mysql/data
# 创建 MySQL 日志目录
echo "Creating MySQL log directory..."
sudo mkdir -p /opt/mysql/mysql/logs
# 添加 MySQL 用户和组
echo "Creating MySQL user and group..."
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
# 修改 MySQL 文件权限
echo "Changing MySQL file permissions..."
sudo chown -R mysql:mysql /opt/mysql/mysql
# 初始化 MySQL 数据库
echo "Initializing MySQL database..."
sudo /opt/mysql/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data
# 启动 MySQL 服务
echo "Starting MySQL service..."
sudo /opt/mysql/mysql/bin/mysqld_safe --defaults-file=/opt/mysql/mysql/my.cnf --user=mysql --datadir=/opt/mysql/mysql/data --log-error=/opt/mysql/mysql/logs/mysqld.log --pid-file=/opt/mysql/mysql/mysql.pid &
# 添加 MySQL 服务自启动
echo "Adding MySQL service auto-start..."
sudo cp /opt/mysql/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults
sudo service mysql start
# 安全设置 MySQL
echo "Securely setting up MySQL..."
sudo mysql_secure_installation
}
# 执行安装 MySQL
install_mysql
上面的注释详细解释了脚本中每个命令的含义和作用,帮助大家更好地理解脚本的执行过程。
注意:这是一个基本的示例,实际操作中,还需对具体的环境和实际需要进行适当的调整。