首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

故障分析 | 一个因 SSL 配置导致的复制异常报错

擅长 DB2,MySQL Oracle 数据库的运行维护调优、排错。 本文来源:原创投稿 * 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编注明来源。...,已经做了以下场景的排除工作: 排除了账号密码错误的问题 排除了账号权限不足的问题 排除了网络不通的问题 2故障分析 通过源端主库的错误日志也能持续观测到该复制用户频繁的尝试连接但都失败,错误日志的报错仅告知用了密码但访问受限...尝试 mysql --ssl-mode=disable,结果如预期的一样,报错无法连接,但并没有报错是因为 SSL原因。...密码填写错误 当密码出现在 Shell 脚本中,并且包含特殊字符如 $ ,# ,!...等时 当密码出现在配置文件中,并且包含特殊字符 # 时,需要用双引号将密码括起来 开启了 SSL 连接属性 DNS 服务器解析主机名异常 指定的数据库 IP 错误 使用了外部的认证方式,(如 AD、

24020

MySQL 8.0的Public Key Retrival错误,毫无规律可言怎么破?

笔者所在部门的连接数据库的方法有JDBC、JDBCTemplate、C3P0接池Druid连接池等技术,在这些连接实现方法上笔者都观察到出现过上述的错误。...针对上述错误,在笔者所在部门的软硬件环境下,笔者对MySQL为何会产生这个问题、这个问题产生的条件、MySQL官方文档对这个问题的阐述、如何有效避免与解决这个问题等方面在本文进行了详细的分析与解释。...图3.1 JDBC错误堆栈 在使用C3P0接池时,也会出现“Public Key Retrieval is not allowed”的错误,从错误的Java堆栈信息中可以看出,该错误仍是在JDBC与...MySQL建立Connection对象时出现,该错误会导致C3P0接池在初始化时失败,该错误错误堆栈如下图所示: ?...图3.2 C3P0错误堆栈 在使用Druid连接池时,也会出现“Public Key Retrieval is not allowed”的错误,与C3P0接池一样,会导致Druid连接池在初始化时失败

77820
您找到你想要的搜索结果了吗?
是的
没有找到

如何在Ubuntu 18.04上使用HTTP 2支持设置Nginx

您还可以按照如何为Nginx创建自签名SSL证书生成配置自签名证书 。 Nginx配置为将流量从端口80重定向到端口443,这应该包含在先前的先决条件中。...listen [::]:443 ssl ipv6only=on; listen 443 ssl; ... 第一个用于IPv6接。第二个用于所有IPv4接。...第2步 - 删除旧的不安全的密码套件 HTTP / 2有一个旧的不安全的密码的黑名单,所以我们必须避免它们。密码套件是加密算法,描述了如何加密传输的数据。...MD5; 保存文件退出编辑器。 再次检查配置是否存在语法错误: sudo nginx -t 如果您发现任何错误,请解决它们并再次测试。...如果浏览器找到HSTS标头,它将不会尝试在给定时间段内通过常规HTTP再次连接到服务器。无论如何,它只使用加密的HTTPS连接交换数据。此标头还可以保护我们免受协议降级攻击。

2.3K30

如何在Ubuntu 16.04上部署支持HTTP2的Nginx

步骤5 - 避免旧加密套件 HTTP / 2有一个巨大的黑名单包含旧的不安全的密码,所以我们必须避免它们。加密套件是一堆加密算法,它们描述了传输数据的加密方式。...MD5; 保存文件,退出文本编辑器。 再次检查配置语法错误: $ sudo nginx -t 步骤6 - 增加密钥交换安全性 建立安全连接的第一步是在服务器客户端之间交换私钥。...在本教程中,证书位于/etc/nginx/ssl/。原因是Nginx总是在证书文件夹中查找用户提供的DHE密钥,如果存在,则使用它。 在文件路径(在我们的例子中 2048)之后的变量指定密钥的长度。...检查语法错误的配置: $ sudo nginx -t 步骤8 - 重新加载Nginx 这就是所有的Nginx配置更改。由于我们检查每个更改的语法错误,您应该准备好重新启动Nginx测试更改。...如果浏览器找到HSTS头部,则在给定的时间段内不会再尝试通过常规HTTP连接到服务器。无论如何,它将只使用加密的HTTPS连接交换数据。这个头部还能保护我们免受协议降级攻击。

1K30

史上最全的 DB2 错误代码大全

1 前言 作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?...子系统的参数禁用“提示(hiats)”所以不能指定优化提示 +30100 01558 分布式协议错误被检测到,提供原来的SQLCODESQLSTATE -007 42601 SQL语句中由非法字符 -...试图从TSO、CICS或IMS访问DB2,同时相应的连接设施处于非活动的状态 -923 57015 因为DB2不可用,所以不能建立连接 -924 58006 遇到了DB2内部的连接错误:提供了原因代码...,指定了错误的SQLCODESQLSTATE -20101 56059 由于指定的原因代码,该函数失败 -20102 42849 在CREATE或ALTER FUNCTION语句中不能使用指定的选项...57057 使用DRDA的分布式客户把OPEN语句连接到PREPARE,但PREPARE接受到一个SQLCODE为+495的警告 -30020 58009 DRDA分布协议错误;对话被解除 -30021

4.4K30

DB2错误代码_db2错误码57016

1 前言 作为一个程序员,数据库是我们必须掌握的知识,经常操作数据库不可避免,but,在写 SQL 语句的时候,难免遇到各种问题。例如,当我们看着数据库报出的一大堆错误时,是否有种两眼发蒙的感觉呢?...子系统的参数禁用“提示(hiats)”所以不能指定优化提示 +30100 01558 分布式协议错误被检测到,提供原来的SQLCODESQLSTATE -007 42601 SQL语句中由非法字符 -...试图从TSO、CICS或IMS访问DB2,同时相应的连接设施处于非活动的状态 -923 57015 因为DB2不可用,所以不能建立连接 -924 58006 遇到了DB2内部的连接错误:提供了原因代码...,指定了错误的SQLCODESQLSTATE -20101 56059 由于指定的原因代码,该函数失败 -20102 42849 在CREATE或ALTER FUNCTION语句中不能使用指定的选项...57057 使用DRDA的分布式客户把OPEN语句连接到PREPARE,但PREPARE接受到一个SQLCODE为+495的警告 -30020 58009 DRDA分布协议错误;对话被解除 -30021

2.5K10

DBeaver,一款数据库管理工具

同时,DBeaver 通过 JDBC接到数据库,可以支持几乎所有的数据库产品,包括:MySQL、PostgreSQL、MariaDB、SQLite、Oracle、Db2、SQL Server、Sybase...“Advanced settings”高级设置选项可以配置 SSH、SSL 以及代理等,也可以为连接指定自己的名称连接类型(开发、测试、生产)。...初次创建某种数据库的连接时,会提示下载相应的 JDBC 驱动。 如果下载驱动过程中出现如下错误,需要单独下载jar。...新建连接之后,就可以通过这些连接访问相应的数据库,查看编辑数据库中的对象,执行 SQL 语句,完成各种管理开发工作。 生成 ER 图 下面介绍下,如何生成数据库对象的 ER 图。...输入一个名称选择数据库连接需要展示的对象,然后点击“完成”,即可生成相应的 ER 图。 参考:DBeaver社区

1.9K20

那些年删过的库,跑过的路,你从中找到解决方法了吗?

顺丰事件 2018年9月19 日晚,据微博网友大佬坊间八卦爆料,顺丰的一个高级工程手误把线上系统一个库删除了,导致某项服务无法使用持续 590 分钟。然后跑路了! ?...事件详情: 工程师邓某在接到该变更需求后,按照操作流程要求,登陆生产数据库跳转机,通过navicat-mysql客户端管理工具,入SHIVA-OMCS的RUSS库进行操作。...起因是Gitlab检测到垃圾邮件发送者通过创建片段来攻击数据库,使其不稳定,于是运维block攻击者的IP,移除用户发送垃圾邮件。...运维A决定删除该db2数据库目录,令其重新复制。由于夜间开车时间很长,运维A错误的将 db1.cluster.gitlab.com (生产库)的数据库删除,而不是db2的。...任何程序都会有Bug,任何系统都会有异常,历史发生的删库事件,是提醒我们需要时刻注意风险,积极总结反思,预防那些可以避免的异常,妥善处理已经发生的异常,让产品更好地服务客户。

1.1K30

零基础学习 Python 之错误 & 异常

对于程序在执行过程中因为错误或者其它原因而中止的现象,我们在之前文章的代码中已经看过很多次了,那些都可以归为「错误 & 异常」现象,我们接下来就是要对这种现象进行近距离的观察处理。...错误 其实不管是弱鸡还是大佬,在写代码的时候错误往往是难以避免的,可能是因为手残,也可能是因为拼写错误,当然还有可能是某些比较玄学的错误,比如逗号写成全角的等等等等。...^ SyntaxError: invalid syntax 上面的那行代码里因为缺少冒号,导致解释器无法解释,于是报错,这个报错其实是 Python 的语法分析器完成的,测到错误所在的文件行号...KeyError 请求一个不存在的字典关键字 IOError 输入/输出错误 AttributeError 尝试访问未知的对象属性 为了能够更好的深入理解,我在这举几个例子,展示一下其中几个异常出现的条件结果...问题出现了就要解决,明天我们继续来说如何去「处理异常」,敬请期待。 如果你觉得本篇文章对你有帮助的话,欢迎点赞转发,让更多的人看到,在这现行谢过了。 The end。

55120

数据库PostrageSQL-用 SSL 进行安全的 TCPIP 连接

默认情况下,这是客户端的选项, 关于如何设置服务器来要求某些或者所有连接使用SSL请见Section 20.1。要SSL模式中启动服务器,包含服务器证书私钥的文件必须存在。...假设根证书中间证书是使用v3_ca扩展名创建的,那么这样做避免了在客户端上存储中间证书的必要。这使得中间证书更容易到期。 无需将根证书添加到中server.crt。...如果希望避免将链接到现有根证书的中间证书显示在ssl_ca_file文件中(假设根证书中间证书是使用 v3_ca 扩展名创建的),则这些证书也可以显示在ssl_ca_file 文件中。...如果在服务器启动时检测到这些文件中的错误,服务器将拒绝启动。但是,如果在配置重新加载过程中检测到错误,则会忽略这些文件,继续使用旧的SSL配置。...在Windows系统上,如果在后端启动时检测到这些文件中存在错误,则该后端将无法建立SSL连接。在所有这些情况下,错误情况都会在服务器日志中报告。 18.9.5.

1.2K10

SERDES关键技术总结

PCS子层内部集成了8B/10B编/解码电路、弹性缓冲电路、通道绑定电路时钟修正电路。8B/10B编/解码电路可以有效的避免数据流出现连续的‘0’或者‘1’,以保证数据传输的平衡性。...多项式的选择通常是基于扰码的特性,包括生成数据的随机度,以及打乱长的0、1的能力。扰码必须避免生成长的0或1序列。   我们希望能够加快触发器的时钟速率。...此后,我们可以使用这些禁用的值来创建一个比特流,这个比特流不会在序列的数据部分中出现。如下图所示 ?   通常,因为存在不允许的数值,所以需要设计数据流中不能出现0或1的长度。...长的0、1会被扰码器打乱,并在解扰时进行恢复。接收数据流的解扰逻辑在数据流中搜寻这些符号对齐数据。类似的技术还可用于建立其他特性。...在这种情况下,必须在输入数据流中检测idle符号。如果检测到idle符号,则不把idle符号写入FIFO。   反过来,如果FIFO运行较慢则在输出数据流出现idle符号,数据被传送给用户。

1.9K22

【计网】从HTTP0.9 到 HTTP3

这一阶段的响应甚至没有响应头,也没有响应码或错误代码,一旦出现问题,服务端会响应一段特殊的 HTML 字符串以便客户端查看。...这三部分原本都是 json 字符串,最终他们会经过 Base64 编码后拼接到一起,使用 . 分割。...在有效时间内,浏览器无须为同一请求再次发起预请求。 接受到响应后,浏览器会自动判断实际请求是否被允许,如果不被允许,将会报上面的错误。...例如,使用Vary: User-Agent头,缓存服务器需要通过UA判断是否使用缓存的页面。如果需要区分移动端桌面端的展示内容,利用这种方式就能避免在不同的终端展示错误的布局。...当出现其中的非校验包丢包的情况时,可以通过另外三个包计算出丢失的数据包的内容。当然这种技术只能使用在丢失一个包的情况下,如果出现丢失多个包就不能使用纠错机制了,只能使用重传的方式了。 证书压缩等.

60630

我掌握的新兴技术-防SQL注入及实现方案原理

其实,实际项目开发中,使用ORM框架,已经对这一块进行了优化,或者JDBC数据库连接也是使用参数预编译的方式,防止SQL注入攻击,总的来说,有以下措施: 参数化查询:使用参数化查询可以避免将用户输入的数据直接拼接到...输入验证:对用户输入的数据进行严格的验证过滤,避免包含恶意SQL代码的数据进入SQL查询。 最小权限原则:为应用程序分配最小的数据库权限,避免攻击者通过SQL注入攻击获取更高的权限。...定期审计:定期对应用程序和数据库进行安全审计,发现修复潜在的安全漏洞。 参数拼接模拟SQL注入 接下来,模拟SQL注入场景,只有知道如何出现问题,才能从问题上触发解决SQL注入。...有如下代码,主要是根据用户名查询用户信息,采用的是将用户名参数拼接到SQL上,这就很容易出现SQL注入问题。...转义处理: 在参数被传递到数据库之前,JDBC驱动程序会根据参数类型自动对特殊字符进行转义,例如对于字符串参数,它会确保单引号(')被正确转义,使得恶意用户输入的单引号不会导致SQL语法错误或注入攻击。

17120

Python错误及异常总结汇总

当 Python 检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常。 2. 异常 对异常的最好描述是: 它是因为程序出现错误而在正常控制流以外采取的行为。...我们边的例子使用的是整数, 但事实上, 任何数值被零除都会导致一个 ZeroDivisionError 异常. SyntaxError:Python 解释器语法错误 ?...你可以使用 try-except 语句检测处理异常. 你也可以添加一个可选的 else 子句处理没有探测到异常的时执行的代码.... except_suite )组成,也可以有一个可选的错误原因。...避免把大片的代码装入 try-except 中然后使用 pass 忽略掉错误,你可以捕获特定的异常忽略它们,或是捕获所有异常采取特定的动作。不要捕获所有异常,然后忽略掉它们。

1.3K110

数据库连接池配置(案例及排查指南)

获取连接等待的直接原因是池子里没有可用连接,具体包括:连接池未初始化,连接长久未使用已被释放,连接使用中需要新建连接,或连接池已耗尽需等待连接用完后归还。...使用 jstack 发现是卡在获取数据库连接中,再过3分钟左右后出现错误:abandon connection, owner thread: xxx 。...因为在网络异常下socket 没有办法检测到网络错误,这时连接其实已经变为“死连接”,如果没有设置 socket 网络超时,连接就会一直等待DB返回结果,造成新的请求都无法获取到连接。...有应用反馈发现大量DB慢查,并且日志上还记录了详细的执行时间SQL语句。接到问题后我们第一时间排查DB发现并没有异常,也没有慢查记录,并且日志中的大部分SQL都能匹配索引,测试执行都在毫秒级。...经验加演练能有效地预防故障,限于篇幅本文只挑选几个最容易引发问题及容易误解的参数做一些经验性地介绍,上述很多案例都可以使用 iptables, tc 等工具来模拟断网丢包来复现,希望有赞的经验能帮助到读者避免一些常见问题

1.3K20

数据库连接池配置(案例及排查指南)

本文以 druid 1.1.5 (https://github.com/alibaba/druid) 连接池为例来阐述几个参数的重要性及如何避免踩坑,虽然下面提到的都是 druid 的配置项,但多数连接池...获取连接等待的直接原因是池子里没有可用连接,具体包括:连接池未初始化,连接长久未使用已被释放,连接使用中需要新建连接,或连接池已耗尽需等待连接用完后归还。...使用 jstack 发现是卡在获取数据库连接中,再过3分钟左右后出现错误:abandon connection, owner thread: xxx 。...因为在网络异常下 socket 没有办法检测到网络错误,这时连接其实已经变为“死连接”,如果没有设置 socket 网络超时,连接就会一直等待 DB 返回结果,造成新的请求都无法获取到连接。...经验加演练能有效地预防故障,限于篇幅本文只挑选几个最容易引发问题及容易误解的参数做一些经验性地介绍,上述很多案例都可以使用 iptables, tc 等工具来模拟断网丢包来复现,希望有赞的经验能帮助到读者避免一些常见问题

1.2K20

解决Postfix,DovecotMySQL的问题

第二部分,逐步配置,使用自下而上的方法来向您展示基本邮件服务器是如何运行的,然后逐步添加更多功能。 故障排除核对表 正确诊断问题是解决问题的第一步。乍一看,许多邮件服务器错误看起来很普遍。...对于已运行很长时间的邮件服务器,资源过度使用是导致服务停止的最可能原因。检查您的资源使用以排除该问题并没有什么坏处。但是,当您刚刚设置新的邮件服务器时,更有可能的是服务启动问题是由配置错误引起的。...一些配置错误 - 特别是语法错误 - 非常严重,足以阻止服务启动。...在Dovecot设置过程中发生语法错误实际上相当普遍,因为有太多不同的文件许多嵌套括号。 使用Notepad ++或其他一些可以轻松匹配括号的程序来帮助您修复错误。...如果您没有获得系统用户的输出,这仍然表示您在与用户相关的Dovecot设置中出现某种错误。返回主要设置指南的Dovecot部分,特别注意与虚拟用户MySQL设置有关的部分。

5.7K20

一文读懂Kafka Connect核心概念

Connector:通过管理任务来协调数据流的高级抽象 Tasks:描述如何从Kafka复制数据 Workers:执行连接器任务的运行进程 Converters:用于在 Connect 发送或接收数据的系统之间转换数据的代码...如果您添加workers、关闭workers或workers意外失败,其余workers会检测到这一点自动协调以在更新的可用workers之间重新分配连接器任务。...下图显示了在使用 JDBC 源连接器从数据库读取、写入 Kafka 以及最后使用 HDFS 接收器连接器写入 HDFS 时如何使用转换器。...Dead Letter Queue 由于多种原因,可能会出现无效记录。 一个例子是当一条记录到达以 JSON 格式序列化的接收器连接器时,但接收器连接器配置需要 Avro 格式。...当errors.tolerance 设置为all 时,所有错误或无效记录都将被忽略继续处理。 没有错误写入 Connect Worker 日志。

1.8K00

数据库连接池配置(案例及排查指南)

本文以 druid 1.1.5 (https://github.com/alibaba/druid) 连接池为例来阐述几个参数的重要性及如何避免踩坑,虽然下面提到的都是 druid 的配置项,但多数连接池...获取连接等待的直接原因是池子里没有可用连接,具体包括:连接池未初始化,连接长久未使用已被释放,连接使用中需要新建连接,或连接池已耗尽需等待连接用完后归还。...使用 jstack 发现是卡在获取数据库连接中,再过3分钟左右后出现错误:abandon connection, owner thread: xxx 。...因为在网络异常下 socket 没有办法检测到网络错误,这时连接其实已经变为“死连接”,如果没有设置 socket 网络超时,连接就会一直等待 DB 返回结果,造成新的请求都无法获取到连接。...限于篇幅本文只挑选几个最容易引发问题及容易误解的参数做一些经验性地介绍,上述很多案例都可以使用 iptables, tc 等工具来模拟断网丢包来复现,希望有赞数据库DAL 层的故障诊断经验能帮助到读者避免一些常见问题

2.6K30

数据库连接池配置(案例及排查指南)

获取连接等待的直接原因是池子里没有可用连接,具体包括:连接池未初始化,连接长久未使用已被释放,连接使用中需要新建连接,或连接池已耗尽需等待连接用完后归还。...使用 jstack 发现是卡在获取数据库连接中,再过3分钟左右后出现错误:abandon connection, owner thread: xxx 。...因为在网络异常下socket 没有办法检测到网络错误,这时连接其实已经变为“死连接”,如果没有设置 socket 网络超时,连接就会一直等待DB返回结果,造成新的请求都无法获取到连接。...有应用反馈发现大量DB慢查,并且日志上还记录了详细的执行时间SQL语句。接到问题后我们第一时间排查DB发现并没有异常,也没有慢查记录,并且日志中的大部分SQL都能匹配索引,测试执行都在毫秒级。...经验加演练能有效地预防故障,限于篇幅本文只挑选几个最容易引发问题及容易误解的参数做一些经验性地介绍,上述很多案例都可以使用 iptables, tc 等工具来模拟断网丢包来复现,希望有赞的经验能帮助到读者避免一些常见问题

95830
领券