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,老客户端需显式开启

相关推荐
时空无限1 小时前
ubuntu dpkg -l 输出第一列解释
linux·运维·ubuntu
这个DBA有点耶2 小时前
MySQL迁移实战:从mysqldump到专业工具的完整选型指南
数据库·mysql·dba
叮咚侠3 小时前
Ubuntu 24.04 安装zabbix-agent 5.0 服务
linux·ubuntu·zabbix·zabbix-agent
01_ice4 小时前
MySQL内外连接
数据库·mysql
左手厨刀右手茼蒿5 小时前
数据仓库的架构演进:从MySQL到ClickHouse到数据湖的工程化实践
linux·嵌入式·系统内核
左手厨刀右手茼蒿6 小时前
创业团队技术选型:别用大厂架构解决小团队问题
linux·嵌入式·系统内核
量子炒饭大师6 小时前
MySQL 5.7 在 CentOS 7 环境安装:从清理 MariaDB 到初始化与完善配置
数据库·mysql·centos·mariadb
bosins6 小时前
将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中
linux·windows·ubuntu
我星期八休息7 小时前
扩展—DNS与ICMP
linux·服务器·网络
筝筝ba7 小时前
linux 查询当前登录的用户数量
linux·服务器·网络