DBeaver连接MariaDB失败大概率因驱动错误、字符集未设为utf8mb4或MariaDB未开启远程访问权限;需确认服务运行状态、用户host为'%'、bind-address非127.0.0.1,并手动安装mariadb-java-client驱动,设置characterEncoding=utf8mb4等参数。

DBeaver 连接 MariaDB 失败,大概率不是配置错,而是驱动没装对、字符集没设好,或者 MariaDB 服务压根没开远程访问权限。直接上手操作前,先确认这三点是否就绪。
确认 MariaDB 服务已运行且允许远程连接
本地连不上,第一反应不该是调 DBeaver,而是看数据库本身通不通。
-
systemctl status mariadb确保服务在运行(Linux);Windows 下查服务列表里MariaDB是否启动 - 进
mysql -u root -p后执行:SELECT host, user FROM mysql.user;—— 如果你的用户只对应localhost,那从 DBeaver(哪怕本机)用127.0.0.1或 IP 连也会被拒 - 需要允许远程访问时,执行:
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; - 检查
/etc/my.cnf或/etc/mysql/mariadb.conf.d/50-server.cnf中是否有bind-address = 127.0.0.1—— 改成0.0.0.0或注释掉才允许外部连接
DBeaver 中手动安装 MariaDB 驱动(别信“自动下载”)
新版 DBeaver(如 21.3+)常默认用 MySQL 驱动连 MariaDB,看似能连,但遇到 TINYINT(1) 当布尔、JSON 类型解析异常、或中文乱码时就会崩。必须换官方 MariaDB 驱动。
- 新建连接 → 选
MariaDB(不是 MySQL)→ 下一步到驱动设置页 - 点右下角
Edit Driver Settings→Libraries标签页 →Remove掉所有已有 JAR - 点
Add File,加载官方驱动:mariadb-java-client-x.x.x.jar(从 mariadb.com 下载,推荐 3.1.x 或 3.2.x) - 确认 Driver Class 是
org.mariadb.jdbc.Driver(不是com.mysql.cj.jdbc.Driver) - 如果用阿里云镜像加速 Maven 下载:在
Preferences → Connection → Drivers → Maven里把中央仓库 URL 换成阿里云地址https://maven.aliyun.com/repository/public
解决中文乱码:连接参数 + 表结构双控
报错 SQL 错误 [1366] [22007]: Incorrect string value: '\xE5\xA4\xA9...' for column ... 是典型 UTF-8 编码不一致导致的,光改 DBeaver 不顶用。
- 建连接时,在
Connection settings → Driver Properties里确保以下三项都设为utf8mb4:characterEncoding=utf8mb4、useUnicode=true、serverTimezone=Asia/Shanghai - 建库建表时,显式指定字符集:
CREATE DATABASE mydb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; - 导入 CSV 前,右键表 →
Import Data → CSV→ 在映射页勾选Use UTF-8 encoding;如果 CSV 是 Excel 导出的,务必另存为「UTF-8 编码的 CSV(逗号分隔)」,别用 Windows 默认的 ANSI - 验证当前连接编码:
SHOW VARIABLES LIKE 'character_set%';和SHOW VARIABLES LIKE 'collation%';,全部应为utf8mb4相关值
内网/跳板机场景:SSH 隧道配置最容易填反的两个字段
通过跳板机连内网 MariaDB 时,DBeaver 的 SSH 设置界面字段命名容易误导人,填错就一直连超时。
-
SSH Host:填跳板机地址(如jump-server.example.com),不是数据库地址 -
Database Host:填127.0.0.1或localhost(因为从跳板机视角,MariaDB 就在它本机或同网段)—— 绝对不要填db.internal - 如果跳板机 SSH 端口不是 22,得在
SSH Host后加冒号端口,比如jump-server.example.com:10022 - 私钥有密码?DBeaver 有时不弹输入框,建议提前用
ssh-add ~/.ssh/id_rsa加载 - 测试隧道是否通:终端执行
ssh -L 3307:db.internal:3306 jump-server.example.com,再另起终端mysql -h 127.0.0.1 -P 3307 -u user -p,通了再配 DBeaver
真正卡住的往往不是“怎么点下一步”,而是 MariaDB 侧的 bind-address、驱动类名、以及那几个看似可选实则关键的连接参数。这些地方一错,DBeaver 界面看着一切正常,实际执行 SQL 时才突然报错,而且错误信息还藏得深。


















