检查 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 执行、网络通路这四个层面,漏掉任一环都可能在后续业务中突然暴雷。
