#!/bin/bash
# 检查操作系统类型
if [[ $(lsb_release -si) == "Ubuntu" ]]; then
# Ubuntu系统
echo "当前操作系统为Ubuntu"
# 更新apt-get包管理器
echo "更新apt-get包管理器..."
apt-get update || { echo "无法更新apt-get包管理器,请检查网络连接或手动更新"; exit 1; }
# 提示用户输入MySQL root密码
echo "请输入MySQL root密码:"
read -s MYSQL_ROOT_PASSWORD
# 安装MySQL服务器
echo "正在安装MySQL..."
debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_ROOT_PASSWORD"
debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_ROOT_PASSWORD"
apt-get install -y mysql-server mysql-client || { echo "无法安装MySQL,请检查网络连接或手动安装"; exit 1; }
# 备份并修改MySQL配置文件
echo "正在备份并修改MySQL配置文件..."
cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf.bak
sed -i 's/bind-address\s*=\s*127.0.0.1/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf
systemctl restart mysql.service
# 验证MySQL是否已安装成功
echo "验证MySQL是否安装成功..."
mysql --version || { echo "MySQL未正确安装,请检查安装过程中是否出现错误"; exit 1; }
echo "MySQL安装完成!"
elif [[ $(cat /etc/redhat-release) == "CentOS"* ]]; then
# CentOS系统
echo "当前操作系统为CentOS"
# 检查当前用户是否为root用户
if [ "$EUID" -ne 0 ]
then echo "请使用root用户运行此脚本"
exit 1
fi
# 更新yum包管理器
echo "更新yum包管理器..."
yum update -y || { echo "无法更新yum包管理器,请检查网络连接或手动更新"; exit 1; }
# 提示用户输入MySQL root密码
echo "请输入MySQL root密码:"
read -s MYSQL_ROOT_PASSWORD
# 安装MySQL服务器
echo "正在安装MySQL..."
yum install -y mariadb-server mariadb || { echo "无法安装MySQL,请检查网络连接或手动安装"; exit 1; }
# 启动MySQL服务
echo "正在启动MySQL..."
systemctl start mariadb || { echo "无法启动MySQL服务"; exit 1; }
# 设置MySQL开机自启
echo "设置MySQL开机自启..."
systemctl enable mariadb
# 修改MySQL root账户密码
echo "正在修改MySQL root账户密码..."
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$MYSQL_ROOT_PASSWORD');" || { echo "无法修改MySQL root账户密码"; exit 1; }
echo "MySQL安装完成!"
else
echo "不支持的操作系统类型"
exit 1
fi
如果用户在脚本运行过程中出现错误,脚本会在每一步操作后打印出错误信息,并退出脚本。