mariadb读取通信数据包时出错



我有个问题。当我将我的MariaDB从主服务器拆分到另一台服务器时(我的数据库服务器正在运行最新标签中的MariaDB docker(,我得到了一个错误:

写入通信数据包时出错

我有两个服务器,一个是Web服务器(没有数据库(,另一个是ubuntu 20.04,带有4gig ram和4核(每个核2gh(

端口已打开,我的PING小于1ms。

我尝试了一个基本的WP站点数据库,连接正常,没有问题,但我的数据库大约是1GB,我想这造成了这个问题。

我也尝试通过专用网络(192.168.100.25(而不是公共IP进行连接,但问题是一样的。

这是我的MariaDB日志

中止与数据库的连接3:"wpdb"用户:"root"主机:"myip"(读取通信数据包时出错(

中止与数据库的连接5:'wpdb'用户:'root'主机:'myip'(写入通信数据包时出错(

我还编辑了MariaDB配置:

  • 将最大允许数据包增加到1GB
  • 将net_buffer_length增加到1000000

但没有任何变化!

以下是mariadb变量:https://pastebin.ubuntu.com/p/yHFRh7CnVC/

显示全局状态:https://pastebin.pl/view/b3db2b91

显示进程列表:

8,root,31.56.66.249:60612,,查询,0,启动,显示完整的PROCESSLIST,0

服务器根目录上的ulimit:

ubuntu@rangoabzar:~$ ulimit -a 
ulimit -a 
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15608
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 15608
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

码头集装箱中的ulimit:

root@63aa95764534:/#  ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 15608
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

iostat

htop

我通过执行返回多行的查询,然后使用行处理这些行,得到了同样的错误。Next(((在Golang中(,并且由于一个不相关的错误而提前退出而不调用行。Close((。令人困惑的是,它最初几次都有效,但最终失败了,这表明一些资源(连接?(正在耗尽。

我可以利用Golang的延期声明,只做

推迟行。关闭((

在调用行之前。Next((,但调用行。在行的每个早期退出之前关闭((。Next((循环同样有效。

最新更新