Can't connect to mysql server on ''(10060 unknown error)
时间: 2024-12-30 22:22:11 浏览: 12
### 解决 MySQL 连接错误 10060 的方法
当遇到 MySQL 错误 10060 “无法连接到服务器”,这通常意味着客户端尝试与 MySQL 数据库建立 TCP/IP 连接失败。可能的原因包括网络配置不当、防火墙阻止端口访问或服务未启动。
#### 检查 MySQL 服务状态
确认 MySQL 服务正在运行。可以通过命令行工具检查服务状态:
```bash
sudo systemctl status mysql.service
```
如果服务未启动,则可以使用以下命令来启动它[^2]:
```bash
sudo systemctl start mysql.service
```
#### 配置防火墙设置
确保防火墙允许通过 MySQL 默认端口 (3306) 访问数据库。对于 Linux 上的 `ufw` 用户来说,添加规则如下所示:
```bash
sudo ufw allow 3306/tcp
```
对于 Windows 系统上的防火墙,需进入控制面板 -> 系统和安全 -> Windows Defender 防火墙 -> 高级设置 来开放相应端口。
#### 修改 my.cnf 文件中的 bind-address 参数
有时默认绑定地址会限制外部 IP 地址访问。编辑 `/etc/mysql/my.cnf` 或者其他位置下的配置文件,找到 `[mysqld]` 下面的 `bind-address=127.0.0.1` 行并将其更改为实际主机IP或者注释掉此行以便接受来自任何地方的请求(注意安全性):
```ini
# [mysqld]
# bind-address = 0.0.0.0
```
重启 MySQL 使更改生效:
```bash
sudo systemctl restart mysql.service
```
#### 设置正确的用户名密码以及权限分配
创建用于远程连接的新用户,并赋予适当权限。例如,在 MySQL 命令提示符下执行以下 SQL 语句以创建新账户并授予其对特定数据库的操作权限[^1]:
```sql
CREATE USER 'data_query'@'%' IDENTIFIED BY 'data_query_1125';
GRANT ALL PRIVILEGES ON *.* TO 'data_query'@'%';
FLUSH PRIVILEGES;
```
以上操作完成后再次测试连接情况;另外考虑到字符集兼容性问题,建议更新驱动程序支持最新版本编码标准如 UTF8MB4[^3]。
阅读全文