mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
是一个预编译的二进制安装包,适用于特定的 Linux 系统,可以直接解压并运行
此脚本只限于linux-glibc 版本
mysql-8.0.22.tar.gz
是源代码包,适用于各种操作系统,需要进行编译和安装
#!/bin/bash
# 检查是否已安装 MySQL
check_mysql_installed() {
local num=$(pgrep mysqld | wc -l)
if [ $num -eq 2 ]; then
echo "MySQL 已经安装。"
return 0
else
return 1
fi
}
# 安装 MySQL
install_mysql() {
echo "正在解压安装包,请稍候..."
tar -xf /opt/src/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
mv /usr/local/mysql-8.0.20-linux-glibc2.12-x86_64/ /usr/local/mysql
mkdir /var/lib/mysql
mkdir /usr/local/mysql/data
mkdir /usr/local/mysql/log
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql/
chmod -R 777 /var/lib/mysql/
rm -rf /etc/my.cnf
cat > /etc/my.cnf <<EOF
[mysql]
default-character-set=utf8
[mysqld]
lower-case-table-names=1
port=3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=200
wait_timeout=3153600
character-set-server=utf8
default-storage-engine=InnoDB
max_allowed_packet=16M
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
EOF
cd /usr/local/mysql
echo "密码初始化日志位于:/usr/local/passwd.txt"
nohup ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ >> /usr/local/passwd.txt 2>&1 &
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
ln -sv /usr/local/mysql/bin/mysql /usr/bin/mysql
chkconfig --add mysqld
systemctl start mysqld
}
if check_mysql_installed; then
exit 0
else
install_mysql
if check_mysql_installed; then
echo "MySQL 安装成功。"
else
echo "MySQL 安装失败。"
fi
fi