mysql健康检查需覆盖四层面:1.服务状态(systemctl/journalctl查启动);2.连接能力(mysql -u -p验证本地/远程通路);3.sql执行(select version()等确认核心功能);4.网络通路(ss/netstat查3306监听及bind-address配置)。

检查 MySQL 服务是否正在运行
安装完成后第一步不是连数据库,而是确认 mysqld 进程确实在后台跑着。Linux 下常用 systemctl status mysql 或 systemctl status mysqld(取决于发行版和安装方式),如果显示 active (running) 才算真正启动成功。macOS 用 brew services list | grep mysql,Windows 则在服务管理器里找 MySQL80 或类似名称的服务项。
常见错误是服务没启、端口被占、或配置文件语法错误导致启动失败——此时 systemctl status 输出末尾的 Failed with result 'exit-code' 就是关键线索,得顺藤摸瓜看 journalctl -u mysql --since "1 hour ago" 查具体报错。
用 mysql 命令行客户端连接本地实例
服务起来了,不代表能连上。执行 mysql -u root -p 是最直接验证:输入密码后如果进入 mysql> 提示符,说明认证、socket/网络通路、用户权限都 OK。若报错 Access denied for user 'root'@'localhost',大概率是安装时没设 root 密码或用了插件认证(如 caching_sha2_password),这时得用 sudo mysqld_safe --skip-grant-tables & 临时绕过权限启动再重置。
注意:默认安装可能禁用远程连接,mysql -h 127.0.0.1 -u root -p 走 TCP,mysql -u root -p 默认走 Unix socket,两者权限策略可能不同,别只试一种。
执行基础 SQL 检查核心功能是否可用
连进去后别急着建库,先跑几条轻量 SQL 确认引擎、权限、系统变量是否就位:
-
SELECT VERSION();—— 看实际运行版本,避免装了多个 MySQL 混淆 -
SHOW VARIABLES LIKE 'datadir';—— 确认数据目录可读写,后续备份恢复依赖这个路径 -
SELECT 1 + 1;—— 排除表达式解析异常(极少见但配置损坏时会发生) -
SHOW DATABASES;—— 验证information_schema等系统库存在且可访问
如果 SHOW DATABASES 报错 Access denied,说明当前用户没 SHOW DATABASES 权限,不是环境问题,是权限配置问题;而 SELECT 1+1 都失败,基本可以断定 mysqld 进程异常或配置严重错误。
检查关键端口与监听状态
MySQL 默认监听 3306 端口,但安装后可能因配置未生效或防火墙拦截导致外部无法访问。Linux/macOS 下用 ss -tlnp | grep :3306 或 lsof -i :3306 查看是否真在监听,注意 LISTEN 后面的 127.0.0.1:3306 表示仅本地可连,*:3306 才允许远程。
Windows 用户可用 netstat -ano | findstr :3306,再结合任务管理器查 PID 对应进程是否为 mysqld.exe。若端口空闲但服务已启动,八成是 my.cnf 里写了 bind-address = 127.0.0.1 却忘了注释,或者 skip-networking 没关。
健康检查不等于“能连上”,得覆盖服务状态、连接能力、SQL 执行、网络通路这四个层面,漏掉任一环都可能在后续业务中突然暴雷。










