用官方APT/YUM仓库安装最稳,能跳过80%初始化报错;手动解压tar.xz包易因权限、依赖、配置等问题导致mysqld启动失败,仅推荐离线、自定义路径或容器场景。

用官方 APT(Ubuntu/Debian)或 YUM(RHEL/CentOS)仓库安装最稳,能跳过 80% 的初始化报错;手动解压 tar.xz 包只适合离线、自定义路径或容器内部署场景。
为什么别一上来就解压 mysql-8.0.x-linux-glibc2.17-x86_64.tar.xz
二进制包看着“干净”,实则埋坑密集:mysqld --initialize 容易因 datadir 权限不对、残留文件、缺失 libaio 或 numactl 直接失败;mysql.server 脚本要硬改 basedir/datadir;systemd 单元文件得自己写,稍错就卡在 Failed to start mysqld.service。
常见卡点:
-
Can't open the mysql.plugin table→ 多半是/var/lib/mysql残留旧数据或权限不是mysql:mysql -
libnuma.so.1: cannot open shared object file→ 缺numactl,需yum install -y numactl或apt install -y libnuma1 -
Job for mysqld.service failed→ 很可能/etc/my.cnf里basedir写错了路径,或mysqld二进制不在$PATH且没加绝对路径
apt install mysql-server(Ubuntu/Debian)关键步骤
这是最快落地的方式,系统自动处理依赖、服务注册、日志路径和默认配置。重点在清理和源配置:
- 先彻底清旧:运行
sudo apt purge mysql-server mysql-client mysql-common mariadb-*,再sudo rm -rf /etc/mysql /var/lib/mysql - 加官方源:下载
mysql-apt-config_0.8.24-1_all.deb,安装后交互选择mysql-8.0(不是默认的 stable),再选Ok - 密码设置发生在安装过程中弹出的图形界面——输的密码就是
root@localhost初始密码,务必记牢 - 认证插件默认是
caching_sha2_password;若老客户端连不上,登录后执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPass123'; FLUSH PRIVILEGES;
yum install mysql-community-server(RHEL/CentOS)注意点
YUM 方式同样省心,但必须确认系统版本与源包匹配(el7/el8/el9),否则 yum repolist 看不到 mysql80-community:
- el8 系统用:
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm;el7 改成el7-3 - 装完源包后,运行
sudo yum repolist enabled | grep mysql,确保输出含mysql80-community - 首次启动后,临时密码在
/var/log/mysqld.log里,用sudo grep 'temporary password' /var/log/mysqld.log提取 - 这个密码仅首次有效,登录后必须立刻改密,否则后续所有操作都会被拒绝
真正容易被忽略的是:无论用哪种方式,只要之前装过 MariaDB 或旧版 MySQL,rpm -qa | grep -i mariadb 和 find / -name mysql 必须跑一遍,漏掉一个残留包或配置文件,都可能让新实例启动失败或监听异常端口。


















