MySQL启动失败主因是data目录缺失或权限不足,需手动创建并赋权;连接错误2002/2003分别对应socket和TCP问题;8.0登录拒绝多因caching_sha2_password插件不兼容,应改用mysql_native_password。
刚装完MySQL却起不来,systemctl start mysqld 没反应,日志里又没报错?大概率是初始化失败导致 data 目录压根没生成。Wampserver、手动解压安装、或从其他机器拷贝的二进制包,都容易因缺少运行库(如vcruntime140.dll)或权限问题卡在这一步。
mysql/bin 目录,直接运行 mysqld --console,错误会实时打印——常见提示是 Can't create/write to file 或 Failed to open log file
datadir 路径(用 mysqld --verbose --help | grep "datadir" 查),确认该路径是否存在、属主是否为 mysql 用户(Linux)或当前管理员(Windows)mkdir -p /var/lib/mysql && chown -R mysql:mysql /var/lib/mysql;Windows *意路径中不能有中文或空格ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 和 ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' 看似一样,但本质不同:前者是走 Unix socket 本地通信失败,后者是尝试走 TCP 3306 端口连不上。别一上来就重启服务。
systemctl status mysqld(Linux)或 sc query mysql(Windows),确认进程真在跑/etc/my.cnf 或 my.ini)里的 socket 项,和客户端实际连接时用的路径(如 mysql -S /tmp/mysql.sock)必须匹配datadir,务必同步更新 socket 路径,并在 [client]、[mysqladmin] 等段落里显式声明,否则 mysql 命令默认仍找老位置装完 MySQL 8.0,用默认密码或空密码登录报 ERROR 1045 (28000): Access denied,不是密码错了,而是认证方式变了。MySQL 8.0 默认用 caching_sha2_password 插件,而老客户端(尤其 JDBC 5.x、某些 GUI 工具)不支持。
--skip-grant-tables 进去重置密码,但生产环境慎用ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_pass'; FLUSH PRIVILEGES;
host='%' ,还要确认 bind-address 在配置里没写死 127.0.0.1,否则根本监听不了外部请求用 yum 安装时卡在 Failing package is: mysql-community-client-5.7.39...,提示 GPG key 失效,这是 MySQL 官方密钥每年轮换导致的,不是你源配错了。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2025(注意年份要和报错里提示的匹配,2026 年可能已是 2025 或 2026 版)rpm -qa | grep mysql | xargs yum remove -y,再删干净 /var/lib/mysql 和 /etc/my.cnf,否则新旧配置打架libaio.so.1: cannot open
shared object file,补装:yum install -y libaio
真正麻烦的从来不是报什么错,而是错误信息没出现在它该在的地方——MySQL 日志默认可能关着,log_error 路径没配,或者你根本没去看 mysqld.err。装完第一件事,不是连上去建库,是确认 tail -f /var/log/mysqld.log 能看到启动全流程。