#!/bin/bash
# 加载公共函数库
source <(curl -sSL https://www.klquan.com/scripts/common.sh)

# 基础配置（每个脚本不一样）
server="mysql"
home="/data"
MYSQL_ROOT_PASSWORD='Yonyou123'
download_patch="https://downloads.mysql.com/archives/community/"

# 1.获取软件安装包并选择版本
all_package=($(get_packages "$server" "$download_patch"))
package=$(select_version "$1" "${all_package[@]}")
show_usage

# 2.确认信息
countdown "$home" "$package"

# 3.安装过程
echo "【1】下载源码包"
    curl -L -o "$home/$package" -# "$packages_url$package"
    check
echo "【2】安装依赖包"
    yum -y install epel-release >/dev/null 2>&1
    yum install libaio numactl-libs ncurses-compat-libs -y &>/dev/null
    check
echo "【3】解压并安装"
    cd "$home"
    tar xf "$package" && rm -f "$package"
    mv mysql-* mysql 2>/dev/null
    # 创建mysql用户（如果不存在）
    id -u mysql >/dev/null 2>&1 || useradd -r -s /sbin/nologin mysql
    # 创建数据目录和日志目录
    mkdir -p "$home/mysql/data"
    mkdir -p "$home/mysql/logs"
    # 设置权限
    chown -R mysql:mysql mysql*
    chmod 750 "$home/mysql/data"
    # 初始化MySQL
    "$home/mysql/bin/mysqld" --initialize-insecure \
        --user=mysql \
        --basedir="$home/mysql" \
        --datadir="$home/mysql/data" \
        --lc-messages-dir="$home/mysql/share" 2>&1
check

echo "【4】配置优化服务参数"
cat <<EOF > /etc/my.cnf
[mysqld]
user=mysql
basedir=$home/mysql
datadir=$home/mysql/data
port=3306
character-set-server=utf8
socket=/tmp/mysql.sock
log-bin=mysql-bin
binlog_format=mixed
server_id=1001
max_connections=512

[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8
port = 3306
auto-rehash
EOF

cat >> /etc/profile << EOF
export PATH=$home/mysql/bin/:\$PATH
EOF

source /etc/profile
check

echo "【5】配置systemd管理"
    cp $home/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
    chmod +x /etc/rc.d/init.d/mysqld
    systemctl daemon-reload && systemctl enable mysql  >/dev/null 2>&1
    systemctl restart mysql  >/dev/null 2>&1
    check


echo "【6】服务启动后的操作"
if systemctl is-active --quiet mysqld; then
    "$home/mysql/bin/mysqladmin" -uroot password "$MYSQL_ROOT_PASSWORD" 2>/dev/null && \
     echo "    ····已经设置root密码为【$MYSQL_ROOT_PASSWORD】"
else
    echo "警告：MySQL服务启动失败"
    echo "请检查日志: $home/mysql/logs/error.log"
fi
check


echo "【完成】路径在$home/mysql/下"
echo "    ····查看状态：systemctl status mysqld"
echo "    ····执行一下source /etc/profile即可生效"
echo "    ····检测命令：mysql -uroot -p$MYSQL_ROOT_PASSWORD -e \"show variables like '%version%'; show variables like '%character%';\""

