检查 MySQL 服务是否已启动
安装完 MySQL 后,最直接的验证是确认后台服务进程是否在运行。不同系统命令不同,但核心逻辑一致:查进程或查端口。
Linux/macOS 上执行systemctl status mysql(或
mysqld,取决于发行版和服务名),看到
active (running)即表示服务已启 macOS 若用 Homebrew 安装,常用
brew services list | grep mysqlWindows 上打开任务管理器 → “服务”选项卡,找
mysqld或你自定义的服务名;或命令行运行
sc query mysql,状态为
RUNNING才算正常 通用兜底法:用
netstat -tuln | grep :3306(Linux/macOS)或
netstat -ano | findstr :3306(Windows),有监听说明端口已开
用 mysql 命令行客户端连接本地实例
服务起来了,不代表能连——可能 root 密码没设、跳过认证、或 socket 路径不对。这步验证的是“可交互访问”。
默认无密码时尝试:mysql -u root;若报
Access denied,说明密码已设,需加
-p参数 如果提示
Can't connect to local MySQL server through socket '/tmp/mysql.sock',说明客户端找不到 socket 文件,可显式指定路径:
mysql -u root -S /var/run/mysqld/mysqld.sock(Linux)或
mysql -u root -S /tmp/mysql.sock(macOS) 连接成功后,输入
SELECT VERSION();和
SHOW DATABASES;,能返回结果即证明 SQL 引擎工作正常
mysql -u root -p Enter password: mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 8.0.33 | +-----------+
检查 MySQL 错误日志里有没有启动失败记录
服务显示 running,但实际无法响应请求?错误日志才是真相所在。MySQL 启动失败往往不报错到终端,只记在日志里。
先查配置中日志路径:mysqld --verbose --help | grep "log-error",或看
/etc/my.cnf/
/usr/local/etc/my.cnf里的
log-error配置项 常见日志位置:
/var/log/mysql/error.log、
/usr/local/var/mysql/*.err(macOS Homebrew)、
C:\ProgramData\MySQL\MySQL Server X.X\Data\*.err(Windows) 重点关注启动时段的日志,搜关键词:
ERROR、
Failed、
Aborting;比如
Could not open required defaults file表示配置文件路径错,
Table 'mysql.plugin' doesn't exist说明数据目录未初始化
用 telnet 或 nc 测试 3306 端口连通性(排除防火墙/网络层问题)
即使服务跑着、本地能连,远程应用仍连不上?可能是端口被封或 bind-address 限制。这步专治“别人连不了”的情况。
本地测试:telnet 127.0.0.1 3306,如果立刻返回 MySQL 的初始握手协议(一串乱码开头含
5.7.39这类版本字符串),说明端口通且服务响应 远程机器上执行:
nc -zv your-mysql-host 3306,返回
succeeded!才算放行 若不通,检查 MySQL 配置中的
bind-address:设为
127.0.0.1就只允许本地;要远程访问得改成
0.0.0.0或具体 IP,并确保防火墙放行该端口
最容易被忽略的是权限和 bind-address 的组合问题:服务起来了、本地连得上、日志也没报错,但远程死活连不上——十有八九是
bind-address还锁在 localhost,或者
root@localhost用户没授权
root@'%'。
