MySQL 5.7.44要求glibc≥2.12,SUSE 11(glibc 2.11)不兼容;需下载对应二进制包、解压至/usr/local/mysql57;初始化前须创建mysql用户、独立/data/mysql57/data目录并安装libaio1;初始化命令必须指定--log-error,临时密码仅在该日志中输出一次。

确认系统glibc版本是否匹配mysql-5.7.x-linux-glibc2.12-x86_64
MySQL 5.7 官方二进制包明确要求 glibc 2.12 或更高,SUSE Linux 11 默认 glibc 版本是 2.11,直接运行会报 GLIBC_2.12 not found。必须先查清:执行 ldd --version,若输出 2.11.x 就不能用标准包;SUSE Linux 12+(如 SLES 12 SP5)才默认带 2.12+。别跳过这步——很多人在 mysqld --initialize 前一切顺利,一启动就卡在共享库缺失。
下载与解压 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
用 wget 直接拉官方归档包最稳:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
解压后立即重命名,避免路径过长出错:
tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gzmv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql57
注意:/usr/local/mysql57 是硬编码路径,后续所有配置(my.cnf、systemd 服务文件)都得对齐它,改名不改路径容易导致 mysqld 找不到 basedir。
初始化前必须做的三件事:用户、目录、依赖
缺一不可,漏掉任一个都会让 mysqld --initialize 静默失败或生成空 data 目录:
- 创建专用用户:
groupadd mysql && useradd -r -g mysql mysql(-r关键,避免家目录干扰) - 数据目录不能放在
/usr/local/mysql57内部——否则升级时误删风险高;推荐/data/mysql57/data,并chown -R mysql:mysql /data/mysql57 - 安装
libaio1(SUSE 下包名不是libaio):zypper install libaio1,否则初始化会卡住无日志
初始化命令和初始密码提取的坑
mysqld --initialize 不写日志到终端,只写进 datadir 下的 error log。务必加 --log-error 指向可写位置,否则你根本看不到密码:
./bin/mysqld --initialize \ --user=mysql \ --basedir=/usr/local/mysql57 \ --datadir=/data/mysql57/data \ --log-error=/data/mysql57/error.log
然后立刻执行:grep "temporary password" /data/mysql57/error.log。如果返回空,说明初始化失败——常见原因是 /data/mysql57/data 权限不对(必须是 mysql:mysql 且不能有 root 写权限),或 error.log 所在目录不可写。
这个临时密码只出现一次,没复制就只能删掉 data 重来。别指望从 mysql.error 文件里翻——5.7.44 默认不生成那个文件名,它用的是你指定的 --log-error 路径。











