mysql-8.3.0-linux-glibc2.17-x86_64 .tar.xz 安装

1.准备

# 1. 确认 CPU 与 glibc 版本
uname -r              # 3.10 及以上即可
ldd --version         # 需 ≥ 2.17

# 2. 卸载系统自带 mariadb / 旧 mysql
yum remove -y mariadb* mysql*

# 3. 安装依赖
yum install -y libaio numactl-libs

2.下载 & 解压

cd /usr/local
# 已提前下载好 mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
tar -xf mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
mv mysql-8.3.0-linux-glibc2.17-x86_64 mysql
# 以后 /usr/local/mysql 就是 $MYSQL_HOME

3.创建用户与目录

groupadd -g 3306 mysql
useradd -r -g 3306 -u 3306 -s /bin/false mysql
mkdir -p /data/mysql/{data,log,tmp,run}
chown -R mysql:mysql /data/mysql /usr/local/mysql

4.写最小化配置文件

cat > /etc/my.cnf <<'EOF'
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/run/mysql.sock
pid-file=/data/mysql/run/mysqld.pid
port=3306
server_id=1
log_error=/data/mysql/log/error.log
slow_query_log=1
slow_query_log_file=/data/mysql/log/slow.log
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
default_authentication_plugin=mysql_native_password

[client]
socket=/data/mysql/run/mysql.sock
EOF

5.初始化系统表

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 末尾会打印临时 root 密码,例如:A temporary password is generated for root@localhost: xxxxxx

6.注册系统服务(可选,但推荐)

# 1. 复制启动脚本
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

# 2.  systemd 方式(CentOS 7+ 推荐)
cat > /etc/systemd/system/mysqld.service <<'EOF'
[Unit]
Description=MySQL Server 8.3.0
After=network.target

[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
ExecReload=/etc/init.d/mysqld reload
PrivateTmp=false

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now mysqld
systemctl status mysqld

7.改密码 + 安全设置

# 1.  取得临时密码
grep 'temporary password' /data/mysql/log/error.log

# 2.  登录并改密
/usr/local/mysql/bin/mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass8!';

8.加环境变量(方便直接敲 mysql)

echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile

9.放行远程(可选)

CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'RemotePass8!';
GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION;

 

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

10.验证

mysql -uroot -p -e "SELECT @@version,@@datadir;"
# 应返回 8.3.0 和 /data/mysql/data

11.卸载(如需)

systemctl stop mysqld
systemctl disable mysqld
rm -rf /usr/local/mysql /data/mysql /etc/my.cnf /etc/systemd/system/mysqld.service
userdel -r mysql 2>/dev/null

一条命令合集(复制即可)

# 最小化全自动(已下载 tar.xz 到 /root)
sudo -i
yum remove -y mariadb* mysql*;yum install -y libaio numactl-libs
cd /usr/local && tar -xf /root/mysql-8.3.0-linux-glibc2.17-x86_64.tar.xz
mv mysql-8.3.0-linux-glibc2.17-x86_64 mysql
groupadd -g 3306 mysql && useradd -r -g 3306 -u 3306 -s /bin/false mysql
mkdir -p /data/mysql/{data,log,run} && chown -R mysql:mysql /data/mysql /usr/local/mysql
cat >/etc/my.cnf<<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/run/mysql.sock
port=3306
log_error=/data/mysql/log/error.log
default_authentication_plugin=mysql_native_password
EOF
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && chmod +x /etc/init.d/mysqld
systemctl daemon-reload && systemctl enable --now mysqld
echo 'export PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile && source /etc/profile

 

 

 

 

 

 

 

 

THE END