flike/kingshard

云服务器ping时出错

smallevil opened this issue · 2 comments

我使用腾讯云服务器.并且是源码自安装的mysql5.7
所有配置好,运行kingshard后,syslog里出现大量ERROR,如下:
ERROR - node.go:[104] - [Node] "checkMaster" "Ping" "db.Addr=127.0.0.1:3306|error=connection was bad" conn_id=0
数据库连接没有问题,命令执行也都正常,但syslog里每几秒就出现一条这个日志.
有人遇到过吗?要如何解决?是什么原因造成的?

补充说明一下:
1.使用的go 1.16编译,centos 7系统yum直接安装的
2.只是sys.log报错,不影响使用,因为只有一台机器,所以不清楚这样的话,从库会不会被判断成down

以下为配置文件:

# kingshard的地址和端口
addr : 0.0.0.0:9696

# prometheus server listen addr
prometheus_addr : 127.0.0.1:7080

# 连接kingshard的用户名和密码的用户列表
user_list:
-
    user : kingshard
    password : 111111

# the web api server
web_addr : 127.0.0.1:9797
#HTTP Basic Auth
web_user : admin
web_password : admin

# if set log_path, the sql log will write into log_path/sql.log,the system log
# will write into log_path/sys.log
log_path : /root/kingshard

# log level[debug|info|warn|error],default error
log_level : debug

# 打开SQL日志,设置为on;关闭SQL日志,设置为off
log_sql: on

# 如果设置了该项,则只输出SQL执行时间超过slow_log_time(ms)毫秒的SQL日志,不设置则输出全部SQL日志
slow_log_time : 100

# sql黑名单文件路径
# 所有在该文件中的sql都会被kingshard拒绝转发
#blacklist_sql_file: /Users/flike/blacklist

# 只允许下面的IP列表连接kingshard,如果不配置则对连接kingshard的IP不做限制
# allow_ips : 127.0.0.1

# kingshard使用的字符集,如果不设置该选项,则kingshard使用utf8作为默认字符集
proxy_charset: utf8mb4

# 一个node节点表示mysql集群的一个数据分片,包括一主多从(可以不配置从库)
nodes :
-
    name : node1

    # 连接池中最大的空闲连接数,也就是kingshard最多与后端DB建立max_conns_limit个连接
    max_conns_limit : 64

    # kingshard连接该node中mysql的用户名和密码,master和slave的用户名和密码必须一致
    user :  root
    password : 1111

    # master的地址和端口
    master : 127.0.0.1:3306

    # slave的地址、端口和读权重,@后面的表示该slave的读权重。可不配置slave
    # read load weight of this slave.
    #slave : 127.0.0.1:3309@1,192.168.0.13@2
    # kingshard在300秒内都连接不上mysql,kingshard则会下线该mysql
    #down_after_noalive : 32

# 各用户的分表规则
schema_list :
-
    # schema的所属用户名
    user: kingshard
    # 分表分布的node名字
    nodes: [node1]
    #
    default: node1
    shard:
    -

已查明,此问题是因为interactive_timeout和wait_timeout设置引起的.
这两个值有任一个设置小于20,就会出现此报错.但不影响使用.
必须两个同时设置20以上才行.之后就不会再报错了.

有哪个有经验的大哥说一下,这两个值在有mysql proxy时应该设多少合适?