MySQL 8.4 通用二进制包(Linux免安装版)完整教程
适用:
mysql-8.4.13-linux-glibc2.28-x86_64.tar.xz(免dpkg、免apt,解压即用,多版本共存,绿色二进制版)⚠️ 前置要求:系统 glibc ≥ 2.28,Ubuntu22.04/24.04/26.04、新Debian、新OpenEuler 都满足;CentOS7 不支持!
⚠️ 区分:不是deb包!不需要dpkg安装,手动管理目录、数据、启停。
一、下载包
下载方式:





文件名:mysql-8.4.13-linux-glibc2.28-x86_64.tar.xz
MD5: a9df9b2879009eb0bfdb9ece3315a3b1
- 不要minimal精简版(工具不全)、不要test测试包、不要裸tar大包
- 把文件传到服务器,比如放到
/tmp目录
二、准备依赖(二进制包缺少系统库会报错)
Ubuntu 系列执行:
bash
sudo apt update
sudo apt install libaio1 libnuma1 libssl3
libaio 是MySQL异步IO必需,缺了初始化直接失败
三、解压 + 部署目录
bash
# 解压(-J 对应xz压缩包)
tar -Jxf mysql-8.4.13-linux-glibc2.28-x86_64.tar.xz
# 移动到固定目录,推荐 /opt,方便管理
sudo mv mysql-8.4.13-linux-glibc2.28-x86_64 /opt/mysql84
# 创建mysql系统用户(不要用root跑数据库)
sudo groupadd mysql
sudo useradd -r -g mysql mysql
# 创建数据目录(数据和程序分开,方便以后迁移、备份)
sudo mkdir -p /opt/mysql84/data
# 权限交给mysql用户
sudo chown -R mysql:mysql /opt/mysql84
sudo chmod 750 /opt/mysql84/data
四、初始化数据库(关键一步,生成临时root密码)
bash
sudo /opt/mysql84/bin/mysqld --initialize --user=mysql --datadir=/opt/mysql84/data
✅ 正常输出末尾会打印一行:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: abcdefg123456
把
abcdefg123456这个临时密码记下来!丢了只能删data目录重新初始化。❗ 如果报错:多半是缺依赖、data目录不为空、权限不对。
五、编写my.cnf配置文件(可选,推荐)
新建 /opt/mysql84/my.cnf
ini
[mysqld]
basedir=/opt/mysql84
datadir=/opt/mysql84/data
socket=/opt/mysql84/mysql.sock
pid-file=/opt/mysql84/mysqld.pid
log-error=/opt/mysql84/error.log
# 基础配置
port=3306
character-set-server=utf8mb4
default-collation=utf8mb4_unicode_ci
max_connections=200
[mysqld_safe]
log-error=/opt/mysql84/error.log
pid-file=/opt/mysql84/mysqld.pid
[client]
socket=/opt/mysql84/mysql.sock
赋权:
bash
sudo chown mysql:mysql /opt/mysql84/my.cnf
六、启动、停止MySQL
方式1:前台脚本启动(测试用,关闭终端就停)
bash
sudo /opt/mysql84/bin/mysqld_safe --defaults-file=/opt/mysql84/my.cnf --user=mysql &
末尾
&放到后台运行
方式2:systemd托管(生产推荐,开机自启,标准方案)
新建服务文件:/etc/systemd/system/mysql84.service
ini
[Unit]
Description=MySQL 8.4 Binary (no-install)
After=network.target
[Service]
Type=notify
User=mysql
Group=mysql
ExecStart=/opt/mysql84/bin/mysqld --defaults-file=/opt/mysql84/my.cnf
ExecStop=/opt/mysql84/bin/mysqladmin -u root -p shutdown
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
加载、启用、启动:
bash
sudo systemctl daemon-reload
sudo systemctl start mysql84
sudo systemctl enable mysql84
# 查看状态
sudo systemctl status mysql84
停止命令:
bash
sudo systemctl stop mysql84
七、登录 + 修改root初始密码
bash
# 用二进制包自带的客户端登录,输入刚才的临时密码
/opt/mysql84/bin/mysql -uroot -p -S /opt/mysql84/mysql.sock
进入mysql命令行后执行,修改密码(换成你自己的):
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass@123';
FLUSH PRIVILEGES;
密码需要符合MySQL默认密码策略:大小写+数字+符号
(可选)开启远程访问(开发用,公网谨慎)
sql
CREATE USER 'root'@'%' IDENTIFIED BY 'MyNewPass@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
记得防火墙放行3306端口:
ufw allow 3306/tcp
八、环境变量(方便直接敲mysql命令,不用写全路径)
编辑 ~/.bashrc
bash
export PATH=/opt/mysql84/bin:$PATH
生效:
bash
source ~/.bashrc
之后直接输入 mysql -uroot -p 就能登录。
九、卸载/迁移(免安装版优势,干净不留垃圾)
bash
# 停止服务
sudo systemctl stop mysql84
sudo systemctl disable mysql84
sudo rm /etc/systemd/system/mysql84.service
sudo systemctl daemon-reload
# 直接删除整个目录,卸载完成
sudo rm -rf /opt/mysql84
# 可选删除mysql用户
sudo userdel mysql
不会改动系统其他包,这就是二进制免安装版的好处。
十、常见坑汇总
- mysqld --initialize 报错:libaio.so.1 missing → 安装
libaio1 - glibc version not enough → 你的系统太老,不能用这个包,换老版本mysql
- 忘记临时密码 →
rm -rf /opt/mysql84/data重新初始化(数据全丢) - 启动成功但是连不上:检查socket路径、my.cnf、权限、selinux
- 不要用root用户运行mysqld,安全风险极高
十一、补充:minimal精简包区别
76M minimal包:没有 mysqlcheck、mysqldump 等常用工具,只保留核心服务,不推荐新手,适合容器镜像。