# 增加连接超时时间(在my.cnf/my.ini中)
[mysqld]
connect_timeout=30
wait_timeout=28800
interactive_timeout=28800
# 客户端连接参数
mysql --connect-timeout=30 -h host -u user -p
# 修改postgresql.conf
tcp_keepalives_idle = 60
tcp_keepalives_interval = 10
tcp_keepalives_count = 10
# 客户端连接字符串
psql "host=localhost dbname=test connect_timeout=30"
-- 修改sqlnet.ora
SQLNET.INBOUND_CONNECT_TIMEOUT=30
SQLNET.SEND_TIMEOUT=30
SQLNET.RECV_TIMEOUT=30
// JDBC连接字符串添加参数
jdbc:mysql://host:3306/db?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
# 调整TCP参数(在/etc/sysctl.conf中)
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
# 应用修改
sysctl -p
网络诊断:
ping database_host
traceroute database_host
tcptraceroute database_host 3306
数据库连接状态检查:
SHOW PROCESSLIST;
SELECT * FROM pg_stat_activity;
SELECT sid, serial#, status FROM v$session;
系统资源监控:
ss -tnp | grep db_port
netstat -tnp | grep db_port
lsof -i :db_port
通过以上措施,可以有效减少Linux环境下数据库连接超时和断开的问题,提高系统稳定性。