1. 可能程序没写好, 如果是用php编写持续运行的程序, 数据库连接可能被写程序的人故意写成了单例模式, 那样的话连接容易过期 2. 数据库那边主动把连接断掉了 把attr_persistent去掉试试吧 这个attr_persistent是持久连接的意思, 就是说即使你把pdo对象销毁了, 底层的连接也不会断, 这样等到mysql主动断掉连接后, php这边依然在使用这个pdo对象, php丝毫不知道pdo已经断了. 还是每次都初始化pdo比较好.