Windows10下WSL2中API连接MariaDB遇ETIMEDOUT超时问题求助
解决WSL2(Kali-Linux)内API连接MariaDB超时问题及DBeaver连接优化建议
一、API连接MariaDB超时的解决方案
1. 修正API数据库连接地址
WSL2环境内的服务直接通过本地回环地址通信即可,无需使用WSL的外部IP(172.xx.xx.x):
- 将API配置中的数据库连接地址从
172.xx.xx.x改为localhost或127.0.0.1 - 确认端口保持MariaDB默认的
3306(若自定义过端口则对应修改)
2. 检查并调整MariaDB用户权限
如果API使用的数据库用户仅授权了外部IP访问,会导致本地连接失败:
- 登录WSL内的MariaDB:
mysql -u root -p - 查看现有用户的授权主机:
SELECT user, host FROM mysql.user; - 为API使用的用户添加本地访问权限(替换
your_user、your_database、your_password为实际值):GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'localhost' IDENTIFIED BY 'your_password'; - 刷新权限生效:
FLUSH PRIVILEGES;
3. 确认MariaDB网络配置
保持bind-address = 0.0.0.0的配置(无需改回127.0.0.1,该配置同时支持WSL内部和Windows端访问),并重启服务:
sudo systemctl restart mariadb
二、DBeaver连接WSL2 MariaDB的优化配置
1. 解决WSL IP动态变化问题
WSL2重启后IP会改变,可通过以下方式固定访问地址:
- Hosts映射:打开Windows系统的
C:\Windows\System32\drivers\etc\hosts文件,添加一行(替换为你的WSL实际IP):
之后DBeaver可直接使用172.xx.xx.x wsl-kaliwsl-kali作为连接地址,无需每次修改IP。 - Localhost转发:确保Windows端MariaDB服务已停止,直接在DBeaver中使用
localhost作为连接地址(WSL的3306端口会自动转发到Windows本地)。
2. 连接参数优化
- 超时设置:在DBeaver连接设置的「高级」选项中,将「连接超时」调整为30秒左右,避免因网络波动导致连接失败。
- SSL配置:若MariaDB未配置SSL,在连接设置的「SSL」选项中选择「不使用SSL」;若已配置则对应启用,增强连接安全性。
- 连接池启用:在「连接池」选项中开启连接池,减少重复创建连接的开销,提升操作效率。
内容的提问来源于stack exchange,提问作者s1uns
相关产品推荐
相关产品推荐

