您的位置:首页 > 新闻 > 会展 > 十大酒店管理系统_html网页代码大全的阅读_简单的网站建设_html友情链接代码

十大酒店管理系统_html网页代码大全的阅读_简单的网站建设_html友情链接代码

2025/9/8 3:09:58 来源:https://blog.csdn.net/weixin_44663564/article/details/146242004  浏览:    关键词:十大酒店管理系统_html网页代码大全的阅读_简单的网站建设_html友情链接代码
十大酒店管理系统_html网页代码大全的阅读_简单的网站建设_html友情链接代码

一 运行脚本前需要下载相应的安装包

下载相应的安装包wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz

在这里插入图片描述
在这里插入图片描述

运行脚本如下

#!/bin/bash
set -e
echo "-----------------------------MySQL 管理脚本--------------------------------------"
start_time=$(date +%s)# 安全校验
if [ $(id -u) != 0 ]; thenecho -e "\e[31m必须使用root用户执行本脚本\e[0m"exit 1
fi# 密码恢复函数
recover_password() {echo "-----------------------------密码恢复模式--------------------------------------"read -p "请输入要恢复的实例类型 (1-单实例 2-多实例): " recover_typeread -p "请输入MySQL安装路径(默认/usr/local/mysql): " MYSQL_HOMEMYSQL_HOME=${MYSQL_HOME:-/usr/local/mysql}if [ "$recover_type" == "1" ]; thenDATA_DIR="/mnt/mysql"SERVICE_NAME="mysqld"elseread -p "请输入实例名称 (如instance1): " instance_nameDATA_DIR="/mnt/mysql_${instance_name}"SERVICE_NAME="mysql_${instance_name}"fiecho "正在停止MySQL服务..."systemctl stop $SERVICE_NAME || trueecho "以跳过权限方式启动..."$MYSQL_HOME/bin/mysqld_safe --skip-grant-tables --datadir=$DATA_DIR &sleep 5echo "重置root密码..."$MYSQL_HOME/bin/mysql -uroot <<EOF
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';
EOFecho "重启服务..."pkill mysqldsleep 3systemctl start $SERVICE_NAMEecho -e "\e[32m密码已重置为:${MYSQL_ROOT_PASSWORD}\e[0m"exit 0
}# 主菜单
echo "请选择操作类型:"
echo "1. 全新安装MySQL"
echo "2. 恢复root密码"
read -p "请输入选项 (1/2): " main_choiceif [ "$main_choice" == "2" ]; thenread -sp "请输入新root密码: " MYSQL_ROOT_PASSWORDechorecover_password
fi# 读取安装信息
echo "-----------------------------安装配置--------------------------------------"
read -sp "请输入MySQL root密码(默认123456): " MYSQL_ROOT_PASSWORD
MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-123456}
echoif [ ${#MYSQL_ROOT_PASSWORD} -lt 6 ]; thenecho -e "\e[31m错误:密码至少需要6个字符\e[0m"exit 1
firead -p "输入安装版本(如8.0.27): " version
read -p "请输入安装路径(默认/usr/local/mysql): " MYSQL_HOME
MYSQL_HOME=${MYSQL_HOME:-/usr/local/mysql}# 安装模式选择
echo "请选择安装模式:"
echo "1. 单实例"
echo "2. 多实例"
read -p "请输入选项 (1/2): " mode# 清理旧版本
echo "-----------------------------清理旧版本--------------------------------------"
pkill -9 mysqld || true
find /etc /usr /var -name '*mysql*' -exec rm -rf {} \; 2>/dev/null || true
rm -rf $MYSQL_HOME /mnt/mysql* || true# 创建目录结构
echo "-----------------------------创建目录结构--------------------------------------"
mkdir -p $MYSQL_HOME
groupadd mysql || true
useradd -r -g mysql -s /bin/false mysql || true# 安装依赖
echo "-----------------------------安装依赖库--------------------------------------"
yum install -y libaio numactl-libs ncurses-compat-libs# 解压安装包
echo "-----------------------------解压安装包--------------------------------------"
cd /opt
tar -xvf mysql-${version}-linux-glibc2.12-x86_64.tar.xz
mv mysql-${version}-linux-glibc2.12-x86_64/* $MYSQL_HOME# 通用初始化函数
initialize_instance() {local DATA_DIR=$1local PORT=$2local CONF_FILE=$3local SERVICE_NAME=$4mkdir -p $DATA_DIRchown -R mysql:mysql $DATA_DIRcat > $CONF_FILE <<EOF
[mysqld]
user=mysql
basedir=$MYSQL_HOME
datadir=$DATA_DIR
socket=$DATA_DIR/mysql.sock
log-error=$DATA_DIR/mysql.err
pid-file=$DATA_DIR/mysql.pid
server_id=$PORT
port=$PORT
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
max_connections=10000
default_authentication_plugin=mysql_native_password[mysql]
socket=$DATA_DIR/mysql.sock
default-character-set=utf8mb4[client]
socket=$DATA_DIR/mysql.sock
EOF$MYSQL_HOME/bin/mysqld --defaults-file=$CONF_FILE --initialize-insecure --user=mysqlchown -R mysql:mysql $DATA_DIRcat > /etc/systemd/system/${SERVICE_NAME}.service <<EOF
[Unit]
Description=MySQL Server
After=network.target[Service]
User=mysql
Group=mysql
Type=notify
ExecStart=$MYSQL_HOME/bin/mysqld --defaults-file=$CONF_FILE
LimitNOFILE=65535
Restart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reloadsystemctl start $SERVICE_NAMEsystemctl enable $SERVICE_NAME# 等待服务启动echo -n "等待MySQL服务启动"retries=0while [ $retries -lt 30 ]; doif [ -S $DATA_DIR/mysql.sock ]; thenecho -e "\n服务启动成功!"breakfiecho -n "."sleep 1((retries++))done$MYSQL_HOME/bin/mysql -S $DATA_DIR/mysql.sock <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}';
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
EOF
}# 安装单实例
if [ "$mode" == "1" ]; thenecho "-----------------------------安装单实例--------------------------------------"initialize_instance "/mnt/mysql" 3306 "/etc/my.cnf" "mysqld"
elseecho "-----------------------------安装多实例--------------------------------------"declare -A instances=(["instance1"]=3306["instance2"]=3307["instance3"]=3308)for instance in "${!instances[@]}"; doecho "正在安装实例: $instance"initialize_instance "/mnt/mysql_${instance}" "${instances[$instance]}" "/etc/my_${instance}.cnf" "mysql_${instance}"done
fi# 环境配置
grep -q "MYSQL_HOME" /etc/profile || {echo "export MYSQL_HOME=$MYSQL_HOME" >> /etc/profileecho 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profile
}
source /etc/profileecho "-----------------------------安装完成--------------------------------------"
echo -e "\e[32m连接信息:\e[0m"
if [ "$mode" == "1" ]; thenecho "本地连接: mysql -uroot -p'${MYSQL_ROOT_PASSWORD}' -S /mnt/mysql/mysql.sock"
elsefor instance in "${!instances[@]}"; doecho "实例 $instance: mysql -uroot -p'${MYSQL_ROOT_PASSWORD}' -S /mnt/mysql_${instance}/mysql.sock"done
fi
echo "总耗时: $(( $(date +%s) - start_time ))秒"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com