欢迎光临
我们一直在努力

CentOS Stream 9 专用 • MySQL 8.4.9 .tar.xz 压缩包全自动安装脚本

CentOS Stream 9 专用 • MySQL 8.4.9 .tar.xz 压缩包全自动安装脚本

  • 纯离线通用包安装
  • 自动初始化、自动改密码、自动开远程
  • 自动加 systemd 开机自启
  • 无交互,复制直接跑

#!/bin/bash
set -euo pipefail

# ==================== 配置项 ====================
MYSQL_VERSION="8.4.9"
MYSQL_PACKAGE="mysql-${MYSQL_VERSION}-linux-glibc2.28-x86_64"
MYSQL_TAR="${MYSQL_PACKAGE}.tar.xz"
DOWNLOAD_URL="https://cdn.mysql.com/Downloads/MySQL-8.4/${MYSQL_TAR}"

INSTALL_DIR="/usr/local/mysql"
DATA_DIR="/data/mysql"
MYSQL_CNF="/etc/my.cnf"

# root 密码(自行修改)
ROOT_PWD="Root@123456"
# =================================================

echo -e "\\033[32m===== 安装依赖 =====\\033[0m"
dnf install -y libaio-devel numactl openssl-devel

echo -e "\\033[32m===== 下载 MySQL ${MYSQL_VERSION} =====\\033[0m"
cd /usr/local/src
wget -N –show-progress "$DOWNLOAD_URL"

echo -e "\\033[32m===== 解压 =====\\033[0m"
tar -xf "$MYSQL_TAR"
mv "$MYSQL_PACKAGE" "$INSTALL_DIR"

echo -e "\\033[32m===== 创建 mysql 用户 & 数据目录 =====\\033[0m"
id -u mysql >/dev/null 2>&1 || useradd -r -s /sbin/nologin mysql
mkdir -p "$DATA_DIR"
chown -R mysql:mysql "$DATA_DIR"
chmod 750 "$DATA_DIR"

echo -e "\\033[32m===== 生成 /etc/my.cnf =====\\033[0m"
cat > "$MYSQL_CNF" <<EOF
[mysqld]
user = mysql
basedir = $INSTALL_DIR
datadir = $DATA_DIR
socket = /tmp/mysql.sock
port = 3306
character-set-server = utf8mb4
default-storage-engine = InnoDB
max_connections = 1000
bind-address = 0.0.0.0
log_error = $DATA_DIR/error.log
pid-file = $DATA_DIR/mysqld.pid
EOF

echo -e "\\033[32m===== 初始化 MySQL =====\\033[0m"
rm -rf "${DATA_DIR😕}/*"
"${INSTALL_DIR}/bin/mysqld" \\
–initialize-insecure \\
–user=mysql \\
–datadir="$DATA_DIR" \\
–basedir="$INSTALL_DIR"

echo -e "\\033[32m===== 配置 systemd 服务 =====\\033[0m"
cat > /usr/lib/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
ExecStart=$INSTALL_DIR/support-files/mysql.server start
ExecStop=$INSTALL_DIR/support-files/mysql.server stop
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload

echo -e "\\033[32m===== 启动并开机自启 =====\\033[0m"
systemctl enable –now mysqld
sleep 3

echo -e "\\033[32m===== 设置 root 密码 & 远程权限 =====\\033[0m"
"${INSTALL_DIR}/bin/mysql" -uroot -e "
ALTER USER 'root'@'localhost' IDENTIFIED BY '${ROOT_PWD}';
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY '${ROOT_PWD}';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
"

echo -e "\\033[32m===== 加入全局 PATH =====\\033[0m"
echo "export PATH=\\$PATH:$INSTALL_DIR/bin" > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

echo -e "\\033[32m===== 安装完成!=====\\033[0m"
echo "版本信息:"
mysql -V
echo
echo "安装目录: $INSTALL_DIR"
echo "数据目录: $DATA_DIR"
echo "配置文件: $MYSQL_CNF"
echo "root密码: $ROOT_PWD"
echo "登录命令: mysql -uroot -p$ROOT_PWD"
echo
echo "管理命令:"
echo " systemctl start mysqld"
echo " systemctl stop mysqld"
echo " systemctl restart mysqld"

使用方法

# 1. 创建脚本
vim install_mysql849.sh

# 2. 粘贴上面全部内容,保存

# 3. 加执行权限
chmod +x install_mysql849.sh

# 4. 运行
./install_mysql849.sh

安装完成后

  • 端口:3306
  • 已开放远程 root 登录
  • 已设置开机自启
  • 直接使用 mysql 命令即可
  • 密码:Root@123456(脚本里可改)
赞(0)
未经允许不得转载:171主机测评 » CentOS Stream 9 专用 • MySQL 8.4.9 .tar.xz 压缩包全自动安装脚本
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址