一、准备工作
检查系统信息
确保系统满足 MySQL 8.3 的最低要求,包括内核版本和 glibc 版本等。
使用以下命令查看系统信息:
uname -a
根据系统架构选择合适的 MySQL 安装包。
移除旧版本 MySQL 或 MariaDB
检查系统中是否已安装旧版本 MySQL 或 MariaDB:
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果存在旧版本,卸载它们:
sudo dnf -y remove mysql-*
sudo dnf -y remove mariadb-*
关闭SELINUX和防火墙
关闭SELINUX:
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭以上两项可以避免后面启动的干扰和远程连接不能联通的问题
二、下载与上传 MySQL 安装包
下载 MySQL 安装包
访问 MySQL 官方下载页面,选择适合 AlmaLinux 的 MySQL 8.4 版本(如
mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz)。
使用 wget 命令下载到本地:
[root@databases ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
--2025-03-13 18:10:26-- https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
正在解析主机 dev.mysql.com (dev.mysql.com)... 2.16.13.18, 2600:1415:6c00:488::2e31, 2600:1415:6c00:486::2e31
正在连接 dev.mysql.com (dev.mysql.com)|2.16.13.18|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Moved Temporarily
位置:https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz [跟随至新的 URL]
--2025-03-13 18:10:27-- https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
正在解析主机 cdn.mysql.com (cdn.mysql.com)... 2.16.184.216, 2600:1415:6c00:491::1d68, 2600:1415:6c00:498::1d68
正在连接 cdn.mysql.com (cdn.mysql.com)|2.16.184.216|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:909004856 (867M) [text/plain]
正在保存至: “mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz”
mysql-8.4.4-linux-glibc2.28 100%[==========================================>] 866.89M 9.71MB/s 用时 1m 45s
2025-03-13 18:12:15 (8.27 MB/s) - 已保存 “mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz” [909004856/909004856])
三、安装 MySQL
解压安装包:在服务器上解压 MySQL 安装包:
[root@databases ~]# tar -xvf mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
mysql-8.4.4-linux-glibc2.28-x86_64/bin/
mysql-8.4.4-linux-glibc2.28-x86_64/bin/myisam_ftdump
mysql-8.4.4-linux-glibc2.28-x86_64/bin/myisamchk
mysql-8.4.4-linux-glibc2.28-x86_64/bin/myisamlog
mysql-8.4.4-linux-glibc2.28-x86_64/bin/myisampack
mysql-8.4.4-linux-glibc2.28-x86_64/bin/mysql
…… 略
mysql-8.4.4-linux-glibc2.28-x86_64/share/
mysql-8.4.4-linux-glibc2.28-x86_64/share/install_rewriter.sql
mysql-8.4.4-linux-glibc2.28-x86_64/share/uninstall_rewriter.sql
将上面解压后的目录移动并重命名为 /usr/local/mysql:
[root@databases ~]# mv mysql-8.4.4-linux-glibc2.28-x86_64 /usr/local/mysql
创建 MySQL 用户组和用户:
[root@databases ~]# groupadd mysql
[root@databases ~]# useradd -g mysql mysql
创建数据目录并授权
创建 MySQL 数据目录并授权:
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
四、配置 MySQL
创建 MySQL 配置文件:如果 /etc/my.cnf 文件不存在,则创建并编辑:
vim /etc/my.cnf
在 /etc/my.cnf 文件中添加以下的内容:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
character_set_server=utf8mb4
lower_case_table_names=1
设置环境变量:将 MySQL 的 bin 目录添加到环境变量中:
echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile
初始化 MySQL: 因上面已经将mysql的bin目录添加到环境变量中,可以在直接在任意地方执行初始化命令:
mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize
五、启动 MySQL 服务
编辑vim
/etc/systemd/system/mysqld.service文件,添加以下的内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid-file=/data/mysql/mysql.pid
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
User=mysql
Group=mysql
LimitNOFILE=65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false
[Install]
WantedBy=multi-user.target
添加完成后,重载systemd的配置
sudo systemctl daemon-reload
启动 MySQL 服务:
systemctl start mysqld
设置 MySQL 服务开机自启:
systemctl enable mysqld
六、登录与配置
查看 MySQL 初始化日志获取临时密码:
cat /data/mysql/mysql.err
使用临时密码登录 MySQL:
mysql -u root -p
修改默认密码
修改 MySQL 的 root 用户密码,下面命令中的YourNewPassword替换为您自己的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
FLUSH PRIVILEGES;
配置远程连接
如果需要远程连接 MySQL,执行以下命令:
USE mysql;
UPDATE user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
七、验证安装
验证 MySQL 是否正常运行
执行以下命令验证 MySQL 是否正常运行:
mysql -u root -p -e "SHOW DATABASES;"
八、注意事项
备份配置文件
在修改配置文件或执行重要操作前,建议备份相关文件。