MySQL 错误 10061 表示 "Connection refused"(连接被拒绝),这通常意味着客户端无法连接到 MySQL 服务器。以下是排查和解决此问题的步骤:
sudo systemctl status mysql
# 或
sudo service mysql status
如果服务未运行,启动它:
sudo systemctl start mysql
# 或
sudo service mysql start
查看 MySQL 是否在监听正确的网络接口:
sudo netstat -tulnp | grep mysql
如果只看到 127.0.0.1
或 ::1
,说明 MySQL 只监听本地连接。
编辑 MySQL 配置文件(通常位于 /etc/mysql/my.cnf
或 /etc/mysql/mysql.conf.d/mysqld.cnf
):
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address
行:
- 改为 bind-address = 0.0.0.0
以监听所有接口
- 或注释掉这行
保存后重启 MySQL:
sudo systemctl restart mysql
sudo ufw status
如果防火墙开启,确保允许 MySQL 端口(默认3306):
sudo ufw allow 3306
确保用户有从指定主机连接的权限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
确认 MySQL 使用默认端口3306:
SHOW GLOBAL VARIABLES LIKE 'port';
查看 MySQL 错误日志获取更多信息:
sudo tail -f /var/log/mysql/error.log
mysql -u username -p -h 127.0.0.1
如果以上步骤仍不能解决问题,请提供更多环境信息和错误日志以便进一步诊断。