SQL Server {#sql-server}
1.1 连接 SQL Server 缺少额外字符串 {#1.1-%E8%BF%9E%E6%8E%A5-sql-server-%E7%BC%BA%E5%B0%91%E9%A2%9D%E5%A4%96%E5%AD%97%E7%AC%A6%E4%B8%B2}
问题现象: {#%E9%97%AE%E9%A2%98%E7%8E%B0%E8%B1%A1%EF%BC%9A}
在创建连接 SQL Server 数据源时,创建失败并报如下图所示错误,驱动程序无法使用安全套接字层(SSL)加密建立与 SOL 服务器的安全连接。
Communications link failure The last packet sent successfully to the server was 0 miliseconds ago. The driver has not received any packets from the server.
解决办法: {#%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%EF%BC%9A}
在额外的 JDBC 连接字符串中添加"encrypt=true;trustServerCertificate=true",在连接到 SOL 服务器时启用 SSL 加密,并信任服务器的证书,绕过对服务器证书的验证。
1.2 v2.10版本,连接旧版本 SQL Server 报错 {#1.2-v2.10%E7%89%88%E6%9C%AC%EF%BC%8C%E8%BF%9E%E6%8E%A5%E6%97%A7%E7%89%88%E6%9C%AC-sql-server-%E6%8A%A5%E9%94%99}
问题现象: {#%E9%97%AE%E9%A2%98%E7%8E%B0%E8%B1%A1%EF%BC%9A-1}
连接 SQL Server 2008R2 数据源时报错:The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". ClientConnectionId:aee28705-714e-49c4-981b-468c87c7cae0+ 或者是在创建旧版本数据源出现的其他错误,都可以试试以下方法。
解决办法: {#%E8%A7%A3%E5%86%B3%E5%8A%9E%E6%B3%95%EF%BC%9A-1}
在 JDBC 连接字符串里加上:encrypt=false 。
MySQL {#mysql}
1.1 MySQL 不允许远程登录 {#1.1-mysql-%E4%B8%8D%E5%85%81%E8%AE%B8%E8%BF%9C%E7%A8%8B%E7%99%BB%E5%BD%95}
问题现象: {#%E9%97%AE%E9%A2%98%E7%8E%B0%E8%B1%A1%EF%BC%9A-2}
在创建 MySQL 数据源时报错 "Access denied for user 'root'@'localhost' (using password: YES)"。
解决方法: {#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%9A}
1、登录进入 MySQL 容器;
docker exec -it mysql-de mysql -uroot -pPassword123@mysql
use mysql;
`select host from user where user = 'root';`
该结果表示是当前的 root 用户限制在当前的 ip 内访问的,需要修改他的访问域 。
2 、将 root 用的 host 的 localhost 改为'%';
update user set host = '%' where user = 'root';
3、 执行 FLUSH PRIVILEGES 或者重启 MySQL 即可。
#重启 MySQL 容器
docker restart mysql-de
所有数据源都适用 {#%E6%89%80%E6%9C%89%E6%95%B0%E6%8D%AE%E6%BA%90%E9%83%BD%E9%80%82%E7%94%A8}
1.1 Communication link failed {#1.1-communication-link-failed}
问题现象: {#%E9%97%AE%E9%A2%98%E7%8E%B0%E8%B1%A1%EF%BC%9A-3}
在创建数据源时,报如下图所示错误,dataease 到目标数据源的端口连接不通。
解决方法: {#%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%9A-1}
端口不通导致的连接问题可以从安全组、防火墙或者是网络策略等方面去排查该问题。
关于如何验证端口的连通性,可以参考以下内容:
执行如下命令,其中,IP 换成对应的主机名,PORT 换成对应的端口
docker exec -it dataease nc -zv IP:PORT