news 2026/3/24 21:46:02

lnmp架构 mysql数据库Cannot assign requested address报错解决

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
lnmp架构 mysql数据库Cannot assign requested address报错解决

数据库连接错误,具体是网络连接问题​ 导致的。错误信息 "Cannot assign requested address" 表示系统无法分配本地地址来建立数据库连接。

报错截取如下:

{
"code": 10501,
"message": "SQLSTATE[HY000] [2002] Cannot assign requested address",
"traces": [
{
"name": "think\\db\\exception\\PDOException",
"file": "\/www\/wwwroot\/zjjgzyxy\/vendor\/topthink\/think-orm\/src\/db\/PDOConnection.php",
"line": 797,
"code": 10501,
"message": "SQLSTATE[HY000] [2002] Cannot assign requested address",
"trace": [
{
"file": "\/www\/wwwroot\/zjjgzyxy\/vendor\/topthink\/think-orm\/src\/db\/connector\/Mysql.php",
"line": 66,
"function": "getPDOStatement",
"class": "think\\db\\PDOConnection",
"type": "->"
},

}

这个错误通常在高并发场景下出现。首先排查php及mysql配置文件。优化数据库连接管理,增加复用,减少频繁创建新连接。

具体操作步骤:

编辑 /usr/local/php/etc/php-fpm.conf 或 www.conf

PHP-FPM配置

1.连接池设置

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1000 # 进程处理1000个请求后重启,避免内存泄漏

2.进程管理
ps aux | grep php-fpm #查看当前FPM进程状态
service php-fpm restart #重启FPM

Nginx配置

1. 连接数限制

编辑 /usr/local/nginx/conf/nginx.conf
worker_processes auto; # 自动设置工作进程数
worker_connections 10240; # 每个工作进程最大连接数
multi_accept on;
use epoll;

查看当前连接状态
netstat -an | grep :80 | wc -l

2.反向代理超时

在server或location块中
location ~ \.php$ {
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
}

MySQL配置

1. 连接数设置

编辑 /etc/my.cnf

[mysqld]
max_connections = 1000
max_connect_errors = 1000
wait_timeout = 600
interactive_timeout = 600
mysql -e "show status like 'Threads_connected';" 查看当前连接数
mysql -e "show variables like 'max_connections';" 查看最大连接数

2. 连接池优化

查看当前连接状态
mysql -e "show processlist;"
mysql -e "show status like '%connection%';"

重启命令:

  • 重启PHP-FPM:service php-fpm restart

  • 重启Nginx:service nginx restart

  • 重启MySQL:service mysql restart

检查服务器资源:
free -h 查看可用内存
mysql -e "SHOW STATUS LIKE 'Threads_connected';" 查看当前连接数

还是无法解决,则查看服务器文件

编辑/etc/sysctl.conf文件:

打开文件
nano /etc/sysctl.conf

添加或修改以下参数:
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_fin_timeout = 5 # 从10改为5秒
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
vm.swappiness = 5
net.core.rmem_max = 2048000
net.core.wmem_max = 2048000
net.ipv4.ip_local_port_range=10000 65000 # 从40000-60000改为10000-65000
net.ipv4.ip_local_reserved_ports=48200-48253
net.ipv4.neigh.default.gc_thresh1 = 10240
net.ipv4.neigh.default.gc_thresh2 = 20480
net.ipv4.neigh.default.gc_thresh3 = 40960
vm.max_map_count=262144

# 添加的参数 ↓
net.ipv4.tcp_tw_reuse = 1 # 开启TIME_WAIT套接字重用
net.ipv4.tcp_tw_recycle = 1 # 开启TIME_WAIT套接字快速回收
net.ipv4.tcp_max_tw_buckets = 20000 # 限制TIME_WAIT最大数量
net.core.somaxconn = 65535 # 增加监听队列长度
net.ipv4.tcp_syncookies = 1 # 开启SYN cookies
net.ipv4.tcp_abort_on_overflow = 0 # 不拒绝新的连接请求

立即生效命令(终端执行)
sysctl -p

sysctl -p 如果不行,尝试
/sbin/sysctl -p

监控效果:观察"无法分配请求的地址"错误是否消失、持续监控TIME_WAIT连接数

  • netstat -an | grep TIME_WAIT

  • netstat -an | grep 3306

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/24 13:29:44

JNPF 钉钉双向同步攻略:组织 / 用户一键打通,触发事件自动联动

企业用钉钉办公,却要在 JNPF 和钉钉间重复录入组织、用户数据? 修改信息后两边不同步,协作效率大打折扣? JNPF 钉钉服务直接破解这一痛点 —— 支持 JNPF 与钉钉双向数据同步,组织架构、用户信息一键互通&#xff0c…

作者头像 李华
网站建设 2026/3/21 6:27:33

Solidity入门(7)- 合约继承

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录1. 为什么需要继承1.1 代码复用的问题1.2 继承的解决方案1.3 继承的实际应用场景2. 单继承2.1 单继承基础语法2.2 访问权限3. 多重继承3.1 多重继承基础3.2 C3线性化…

作者头像 李华
网站建设 2026/3/22 23:15:49

CTF比赛含金量高吗?(非常详细),零基础入门CTF,看这一篇就够了

文章目录 前言 关于我一、基础环境二、常用工具三、Web 安全四、加密解密五、密码爆破六、文件工具七、隐写图片八、隐写音频九、隐写取证十、逆向工具十一、Java 反编译十二、Python反编译十三、PWN二进制 前言 CTF(Capture The Flag)比赛在网络安全…

作者头像 李华
网站建设 2026/3/19 17:18:16

7.2 深度研究:利用大模型高级检索与分析能力

7.2 深度研究:利用大模型高级检索与分析能力 在上一节课中,我们学习了如何整合NotebookLM、大语言模型和Cursor等工具,构建完整的AI辅助开发工作流。本节课我们将深入探讨如何利用大模型的高级检索与分析能力,提升技术研究和方案设计的效率与质量。 大模型检索能力概述 …

作者头像 李华
网站建设 2026/3/24 16:12:40

restTemplate发送POST

HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);// 2. 构建请求参数&#xff08;与文档示例完全一致&#xff09;Map<String, Object> requestBody new HashMap<>();requestBody.put("grant_type", "…

作者头像 李华