MySQL 8.4.10 二进制包安装教程(Linux 环境)

概述

MySQL 8.4 是官方 LTS(长期支持)版本,相比 8.0 系列在性能和安全性上有不少改进。本文使用官方二进制包在 Linux 上安装 MySQL 8.4.10,覆盖下载、配置、初始化、systemd 托管到修改密码的完整流程,适合生产环境部署参考。

二进制包安装方式不依赖系统包管理器,适合离线环境或需要自定义安装路径的场景。

  1. 下载解压
    cd /data
    wget https://cdn.mysql.com//Downloads/MySQL-8.4/mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz
    tar xf mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz
    mv mysql-8.4.10-linux-glibc2.28-x86_64 mysql8.4.10

如果服务器是离线环境,可以到官网下载后手动上传到服务器。

  1. 配置环境变量

vi /etc/profile

export MYSQL_HOME=/data/mysql8.4.10

export PATH=PATH:{PATH}:PATH:{MYSQL_HOME}/bin

source /etc/profile

  1. 配置文件
    创建并编辑 my.cnf:
    cd mysql8.4.10
    vi my.cnf

mysqld

设置 3306 端口

port=3306

设置 mysql 的安装目录

basedir=/data/mysql8.4.10

设置 mysql 数据库的数据存放目录

datadir=/data/mysql8.4.10/data

指定存放进程 ID 的文件

pid_file=/data/mysql8.4.10/data/mysql.pid

指定错误日志路径

log_error=/data/mysql8.4.10/data/mysql.error

允许最大连接数

max_connections=1000

允许连接失败的次数。防止有人从该主机试图攻击数据库系统

max_connect_errors=10

服务端使用的字符集默认为 UTF8MB4

character-set-server=utf8mb4

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

表名大小写不敏感(0 敏感 / 1 不敏感)

lower_case_table_names=1

mysql

设置 mysql 客户端连接服务端时默认使用的端口

default-character-set=utf8mb4

注意:lower_case_table_names 必须在初始化之前确定,初始化后修改会导致数据目录不一致。Windows 下默认值为 1,Linux 下默认值为 0,迁移数据前务必确认两边一致。

  1. 创建用户组和用户

出于安全考虑,MySQL 使用独立系统用户运行,不使用 root:

groupadd mysql

useradd -r -g mysql -s /bin/false mysql

-s /bin/false 禁止该用户登录系统,仅用于运行进程。

  1. 配置目录权限

chown mysql:mysql -R /data/mysql8.4.10

chmod -R 755 /data/mysql8.4.10

  1. 初始化数据库
    /data/mysql8.4.10/bin/mysqld --console --initialize --user=mysql
    cat /data/mysql8.4.10/data/mysql.error

初始化完成后,查看错误日志最后一行,会输出 root 临时密码,务必保存,首次登录要用。

  1. 配置 systemd 服务

vi /etc/systemd/system/mysql.service

Unit

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

Install

WantedBy=multi-user.target

Service

User=mysql

Group=mysql

ExecStart=/data/mysql8.4.10/bin/mysqld --defaults-file=/data/mysql8.4.10/my.cnf

LimitNOFILE = 65535

加载服务配置:

systemctl daemon-reload

  1. 启动 MySQL
    systemctl start mysql

设置开机启动:

systemctl enable mysql

  1. 登录并修改密码
    使用初始化时生成的临时密码登录:
    mysql -uroot -p

修改 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';

允许 root 远程登录(按需开启):

USE mysql;

UPDATE user SET host='%' WHERE user='root';

FLUSH PRIVILEGES;

常见问题

Q:MySQL 8.4 默认认证插件是什么?

MySQL 8.0 起默认使用 caching_sha2_password,8.4 中 mysql_native_password 默认禁用。如果旧客户端(如老版本 JDBC)连接报认证错误,需要显式启用:

mysqld

mysql-native-password=ON

Q:初始化时报 libaio.so.1 缺失?

需要安装 libaio 依赖:

yum install -y libaio

Q:无法远程连接?

检查三点:my.cnf 端口配置、防火墙放行、用户 host 是否为 %:

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

firewall-cmd --reload

总结

安装流程可以总结为五步:解压 → 配置 → 初始化 → systemd 托管 → 改密码。关键点:

lower_case_table_names 要在初始化前确定

初始化临时密码保存在错误日志中,注意保存

用独立用户运行 MySQL,不要用 root

8.4 默认禁用 mysql_native_password,老客户端需显式开启

相关推荐
qetfw31 分钟前
Debian 综合服务实训:Apache2、Samba、LDAP、vsftpd 与 OpenVPN
linux·服务器·debian
用户05101225729632 分钟前
RGA(三)——实宽高、虚宽高与对齐约束
linux·嵌入式
fastjson_41 分钟前
帆软看板 - 问题收集
linux·前端·javascript
guo_wen_qiang42 分钟前
云服务器mysql分库分表环境搭建(2库4表)
数据库·mysql·docker
jianpeng的工程笔记44 分钟前
EL8 / EL9 安装 Slurm 26.05.4:主备控制器、MariaDB 记账与作业验收
linux·数据库·mariadb·高性能计算·slurm
程序员-Benothing1 小时前
Linux系统时间管理:date、timedatectl、NTP、Chrony配置
linux·运维·服务器
the3clipse1 小时前
MacOS、Linux 与 Windows 视频编解码对比:AV1、HEVC、ProRes 与硬件加速优劣势
linux·windows·macos·hevc·av1·视频解码·硬件解码
s6516654961 小时前
bootsect.s,setup.s,head.s的主要功能和对系统状态的影响、作用
linux
夜雪一千2 小时前
Python URL解码详解:单层、双重URL解码实战与踩坑指南
linux·服务器·python
咯哦哦哦哦2 小时前
配置VNC sever 6.11.0版本 linux(激活码)
linux·运维·服务器