DBEAVER Connections using insecure transport are prohibited while --require_secure_transport=ON.

本文讲述了作者在使用Dbeaver连接MySQL时遇到的连接不上的问题,由于require_secure_transport设置,需要进行SSL安全设置。解决方法包括切换到SSL界面,取消验证服务证书并勾选requiressl以成功连接。

前言

好久没上来写文章咯,近期可真太忙了,闲下来一点就写个用dbeaver 连接mysql时遇到的连接不上的问题吧

Connections using insecure transport are prohibited while --require_secure_transport=ON.

Dbeaver连接时提示Connections using insecure transport are prohibited while --require_secure_transport=ON.此时是提示你禁止使用不安全传输的连接
所以我们要去做ssl的安全设置
在这里插入图片描述

解决方法

切换到ssl界面,取消勾选verify server certificate(验证服务证书),勾选上require ssl(需要ssl)
在这里插入图片描述
点击 Test Connection即可连接成功
在这里插入图片描述
其他需要证书的数据库链接就自行操作就行

结语

BEST WISHS!!!

<think> 我们被要求解释MySQL中的`require_secure_transport=ON`参数的含义、作用及设置方法。根据之前的引用和知识,我们可以总结如下: ### 含义与作用 `require_secure_transport`是MySQL的一个系统变量,当设置为`ON`时,它强制要求客户端必须使用安全连接(即TLS/SSL加密连接)才能连接到MySQL服务器。这样做的目的是为了增强数据传输的安全性,防止敏感数据在传输过程中被窃听或篡改。 ### 关键点 1. **版本要求**:该参数在MySQL 5.7.28及更高版本中可用[^1]。 2. **连接要求**:服务器必须配置有效的SSL证书和密钥,并且客户端必须支持TLS/SSL连接[^1]。 3. **例外情况**:通过socket(Unix domain socket)或共享内存(shared memory)的连接不受此限制,因为它们在本地进行通信,不通过网络传输[^2]。 ### 设置方法 #### 方法1:动态设置(立即生效,无需重启) ```sql -- 使用具有足够权限的用户(如root)执行 SET GLOBAL require_secure_transport = ON; ``` 此方法设置的参数在MySQL服务重启后会失效。 #### 方法2:修改配置文件(永久生效) 在MySQL的配置文件(如`my.cnf`或`my.ini`)的`[mysqld]`部分添加: ```ini [mysqld] require_secure_transport = ON ``` 修改配置文件后需要重启MySQL服务。 ### 注意事项 1. **客户端连接要求**:客户端连接时需要使用SSL模式,例如在连接字符串中指定`ssl-mode=REQUIRED`(或更高安全级别)[^3]。 2. **用户级别要求**:除了全局设置,还可以在用户级别设置SSL要求(如`REQUIRE SSL`),这样即使全局没有开启,该用户也必须使用SSL连接[^4]。 ### 验证设置 1. 查看全局变量: ```sql SHOW GLOBAL VARIABLES LIKE 'require_secure_transport'; ``` 2. 测试非加密连接:尝试使用非加密方式连接(如`mysql --ssl-mode=DISABLED -u username -p`),应该会收到类似以下错误: ```bash ERROR 1045 (28000): Access denied for user ... Connections using insecure transport are prohibited while --require_secure_transport=ON. ``` ### 相关问题 §§相关问题§§ 1. 如何为MySQL服务器配置SSL证书? 2.DBeaver等客户端工具中如何设置SSL连接? 3. 如何检查当前MySQL连接是否使用了加密传输? 4. 用户级别的SSL要求(如`REQUIRE SSL`)和全局`require_secure_transport`设置有什么区别和优先级? </think> ### MySQL `require_secure_transport=ON` 详解 #### 一、核心含义与作用 `require_secure_transport=ON` 是 MySQL 的关键安全参数,**强制要求所有客户端连接必须使用加密传输**(TLS/SSL)。其核心作用: 1. **强制加密传输** 禁用所有非加密连接(如未加密的 TCP/IP 连接),仅允许通过 SSL/TLS 的安全连接[^1][^2] 2. **防御中间人攻击** 防止敏感数据(如密码、业务数据)在传输过程中被窃取或篡改 3. **合规性支持** 满足 GDPR、PCI DSS 等安全规范对数据传输的要求 4. **安全加固** 即使客户端未显式请求加密,服务器也会强制升级连接为加密通道 #### 二、工作原理 ```mermaid graph LR A[客户端请求连接] --> B{require_secure_transport=ON?} B --> |是| C[强制SSL/TLS加密] B --> |否| D[允许非加密连接] C --> E[加密数据传输] D --> F[明文数据传输] ``` #### 三、启用条件 | **组件** | **要求** | |----------------|--------------------------------------------------------------------------| | MySQL 版本 | 5.7.28 或更高版本[^1] | | 服务器配置 | 必须配置有效 SSL 证书和密钥 | | 客户端 | 必须支持 TLS/SSL 协议(如 MySQL 8.x CLI, DBeaver, Navicat 等) | | 连接协议 | 本地 socket 和共享内存连接除外[^2] | #### 四、配置方法 **1. 动态启用(立即生效)** ```sql -- 需 SUPER 权限 SET GLOBAL require_secure_transport = ON; ``` **2. 永久生效(需重启)** 在 `my.cnf` 或 `my.ini` 中添加: ```ini [mysqld] require_secure_transport = ON ``` **3. 用户级加密要求(优先级更高)** ```sql -- 强制特定用户必须使用 SSL CREATE USER 'app_user'@'%' IDENTIFIED BY '密码' REQUIRE SSL; -- 强制使用客户端证书 ALTER USER 'admin'@'%' REQUIRE X509; ``` #### 五、验证方法 **1. 查看全局设置** ```sql SHOW GLOBAL VARIABLES LIKE 'require_secure_transport'; -- 返回 Value=ON 表示生效 ``` **2. 测试非加密连接(应失败)** ```bash mysql -u 用户名 -p密码 --ssl-mode=DISABLED # 报错:Connections using insecure transport are prohibited[^3] ``` **3. 检查用户加密状态** ```sql SELECT user, host, ssl_type FROM mysql.user; ``` - `ssl_type` 列显示加密要求: - `ANY`:允许非加密(默认) - `SSL`:要求基础加密 - `X509`:要求客户端证书 #### 六、客户端连接示例 **1. MySQL CLI 连接** ```bash mysql -u 用户名 -p密码 --ssl-mode=REQUIRED ``` **2. DBeaver 配置** ```ini 连接属性添加: useSSL=true requireSSL=true ``` #### 七、注意事项 1. **证书配置前置** 启用前必须完成服务器 SSL 证书部署,否则导致服务无法连接 2. **客户端兼容性** 旧客户端(如 MySQL 5.6 CLI)可能不支持加密连接 3. **性能影响** 加密传输增加约 5-10% CPU 开销,建议高性能场景评估 4. **混合环境过渡** 可先用 `REQUIRE SSL` 用户级策略逐步迁移 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值