DBEAVER连接mysql数据库时报错Connection refused: no further information
时间: 2025-07-20 09:18:28 浏览: 20
### 解决 DBeaver 连接 MySQL 数据库时出现的 `Connection refused: no further information` 错误
#### 1. 检查数据库服务是否正常运行
确保 MySQL 服务已启动。在 macOS 上可以使用以下命令检查并启动服务:
```bash
brew services list
brew services start mysql
```
在 Linux 系统上,可以使用如下命令:
```bash
sudo systemctl status mysql
sudo systemctl start mysql
```
如果服务未运行,则无法建立连接[^2]。
---
#### 2. 验证主机和端口配置
默认情况下,MySQL 使用 `localhost` 和端口 `3306`。需要确认 DBeaver 中填写的主机名和端口号与数据库监听地址一致。如果是远程服务器,请将 `localhost` 替换为实际 IP 地址。
例如,在 DBeaver 的连接设置中应填写正确的主机名或 IP 地址以及端口号:
- **主机**:`192.168.x.x`(或公网 IP)
- **端口**:`3306`
- **数据库名称**:`your_database_name`(可选)
---
#### 3. 修改绑定地址以允许远程访问
MySQL 默认只绑定到 `127.0.0.1`,这意味着它仅接受本地连接。为了允许外部设备访问,需修改 MySQL 配置文件(通常位于 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`),找到 `[mysqld]` 段落,并添加或修改以下行:
```ini
bind-address = 0.0.0.0
```
保存文件后重启 MySQL 服务:
```bash
sudo systemctl restart mysql
```
这样 MySQL 将监听所有网络接口上的连接请求。
---
#### 4. 授予用户远程访问权限
登录 MySQL 并授予指定用户从任意主机连接的权限:
```sql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
```
其中 `'root'@'%'` 表示允许 `root` 用户从任何主机连接,`your_password` 是该用户的密码。请根据实际情况替换用户名和密码[^2]。
---
#### 5. 检查防火墙设置
如果数据库服务正在运行但仍然无法连接,可能是由于防火墙阻止了连接。在 Linux 上,可以临时关闭防火墙进行测试:
```bash
sudo systemctl stop firewalld
```
对于 macOS,可以使用以下命令开放端口:
```bash
sudo ufw allow 3306/tcp
```
也可以直接禁用系统防火墙以排除干扰:
```bash
sudo ufw disable
```
完成测试后记得重新启用防火墙并配置适当的规则。
---
#### 6. 测试网络连通性
使用 `telnet` 或 `nc` 命令验证目标主机的端口是否可达:
```bash
telnet your_host_ip 3306
# 或者
nc -zv your_host_ip 3306
```
如果连接失败,则可能是网络问题或者 MySQL 服务没有正确监听该端口。
---
#### 7. 检查 SSL 设置
某些版本的 MySQL 默认要求使用 SSL 加密连接。如果客户端不支持 SSL 或未配置证书,可能会导致连接被拒绝。可以在 DBeaver 的 JDBC URL 中添加参数禁用 SSL:
```text
jdbc:mysql://your_host:3306/your_database?sslMode=DISABLED
```
---
#### 8. 调整最大连接数限制
如果数据库已经达到了最大连接数限制,新的连接请求将被拒绝。可以通过以下 SQL 查询当前连接数并适当调整配置:
```sql
SHOW VARIABLES LIKE 'max_connections';
SET GLOBAL max_connections = 200;
```
长期解决方案是在 MySQL 配置文件中永久修改 `max_connections` 参数,并重启服务生效。
---
####
阅读全文
相关推荐


















