mysql安装过程中解决依赖问题与配置方法

来源:这里教程网 时间:2026-02-28 20:44:53 作者:

MySQL 安装时提示
libaio.so.1: cannot open shared object file

这是最常见依赖缺失错误,尤其在最小化安装的 CentOS/RHEL 系统上。MySQL 服务端(

mysqld
)运行依赖
libaio
库,但系统默认不装。

CentOS/RHEL 7/8:运行
yum install -y libaio
(RHEL 8+ 可用
dnf
Ubuntu/Debian:运行
apt-get install -y libaio1
(注意不是
libaio-dev
,那是开发头文件)
验证是否生效:执行
ldd $(which mysqld) | grep aio
,应输出类似
libaio.so.1 => /lib64/libaio.so.1 (0x...)

用 tar.gz 包手动安装后启动失败:
Can't find error-message file

MySQL 二进制包解压后不会自动配置数据目录和语言文件路径,

mysqld
找不到
errmsg.sys
就会报这个错,常被误判为权限问题。

必须显式指定
--datadir
--lc-messages-dir
,例如:
bin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql --lc-messages-dir=share/english
--lc-messages-dir
的值必须是解压后目录中
share/english
(或对应语言子目录)的**绝对路径**,相对路径无效
若跳过初始化直接启动,会因无数据目录而失败;若初始化后未赋权,需补
chown -R mysql:mysql /var/lib/mysql

systemd 启动 MySQL 失败:
Failed to start MySQL Server
且日志无有效信息

systemd 会屏蔽部分标准错误输出,真正原因往往藏在

mysqld
自身日志里,而非
journalctl -u mysqld
显示的内容。

先检查
mysqld
是否能前台运行:
bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --console
,错误会直接打印到终端
确认
/etc/my.cnf
[mysqld]
段落有
pid-file
socket
路径,且目录可写(如
/var/run/mysqld/
需提前
mkdir -p /var/run/mysqld && chown mysql:mysql /var/run/mysqld
systemd 单元文件里若用了
ProtectHome=yes
NoNewPrivileges=yes
,可能阻止访问
/var/lib/mysql
,临时注释测试

首次登录被拒绝:
Access denied for user 'root'@'localhost'

5.7+ 版本启用

validate_password
插件且初始化时生成随机密码,不是空密码,也不是
mysql_secure_installation
里设的密码——那个是后续步骤。

查看初始化时生成的临时密码:
grep 'temporary password' /var/log/mysqld.log
(RPM 安装)或初始化命令输出的最后一行(tar 包安装)
用该密码登录:
mysql -u root -p
,然后立刻改密:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!';
如果跳过密码策略,可在
my.cnf
[mysqld]
下加
validate_password=OFF
,但仅限测试环境
MySQL 的依赖和配置问题大多卡在「路径没写对」「权限没给够」「日志没看全」这三处,尤其是
lc-messages-dir
和 systemd 的路径隔离机制,容易反复踩坑。

相关推荐