1.确认是否是防火墙的问题,用telnet可测试各个节点之间是否连通,或者用memql-ops memsql-update-config --all --key max_pooled_connections --value 2048 命令修改所有节点的连接池大小,如果修改成功,则代表防火墙没问题
2.如果防火墙没问题,就可能是各个节点的连接池大小的问题
此问题是在国外网站找到解决方案,英语水平有限,大致意思就是上面两点,原文地址:https://knowledgebase.memsql.com/hc/en-us/articles/212165403-Query-Error-Unable-to-connect-Timed-out-reading-from-socket
Query Error: Unable to connect ... Timed out reading from socket
ISSUE
Running a query fails with an error like:
CAUSE
A MemSQL node is unable to connect to another MemSQL node. This may be because there is no network connectivity (such as a network problem or a firewall blocking connectivity), or because a node is overloaded with connection requests.
- Ensure that all nodes are able to connect to all other nodes on the configured port (default 3306). Make sure there is no firewall blocking connectivity.
- One way to verify connectivity is to run the MemSQL command on all MemSQL nodes. If this fails with the same error, then a node is unable to connect to another node.
- Note that some queries require different amounts of connectivity, e.g. some queries only require aggregator-leaf connections while others require aggregator-leaf as well as leaf-leaf connections. As a result, it is possible for some queries to succeed while others fail with this error.
- If all nodes are able to connect to all other nodes, the error is likely because your query or queries require opening too many connections at once. Run on all MemSQL nodes to pre-fill connection pools. If the connection pool size is too small for your workload, adjust the
max_pooled_connections
configuration variable, which controls the number of pooled connections between each pair of nodes.