关于Unable to connect to your database server的数据库连接问题
如果访问某些页面比较频繁,或者是其他情况下,经常会出现这样的提示:A Database Error Occurred
Unable to connect to your database server using the provided settings.
之前曾经遇到过,也提问过,当时以为是购买的虚拟主机比较便宜,连接数比较少造成的,也没在意。
但是现在放到了一个超级大的服务器上,带宽也非常充足,几乎没什么人在线,但为什么还是会出现这样的问题呢?
提示是说连接不上数据库,之前也以为是自己代码哪里没有写好,但是CI本身并不要求你释放数据库连接什么的,所以实在不知道怎么办了。请高人指点一下,这是怎么回事?我应该怎么办?
非常感谢!! 数据库权限不够,授权后就行了 CI 也是用 PHP 函数链接的数据库,不存在什么特殊的地方。
用纯 PHP 试试。 谢谢Hex。这两天搜索了一下国外网站,找到了解决方案,就是在config的database.php中,加一个数据库连接端口:
$db['default']['port'] = "3306";
不知道MySql的默认端口是不是3306,反正我的虚拟主机上的MySql是这个端口,别人的解决方案也一致是这个。CI是支持这个port参数的,但是默认的配置文件里面没写,我觉得默认写上$db['default']['port'] = "";就好了。
供后来人参考吧。 回复 3# lzyname
我之前也遇到过这种问题,换了个好点的服务器就好了,一直也没有深入的找原因,看到你的解决办法,回去试试,呵呵 :o 不是 my.cnf 中的 max_connection 的数量问题吗? 这个问题其实很早以前就问过一次,但是经过这几天的学习,我发现CI还是需要自己写释放数据库连接的代码的,即get完需要写$query->free_result()释放这个数据库资源才可以。看看这样是否有效吧。确实是max_user_connections的问题,说明没有close啊。。。可是之前问的时候大家都说CI是自动带close功能的,我也没在意。。。现在出状况了,头疼了好几天了。 上面的方法都試了,不行,后來就分析配置,發現將$db['default']['pconnect'] = FALSE;就可以了~~~ 虽然没遇到过,学习 本帖最后由 p0o9o9p0 于 2011-7-23 16:08 编辑
学了
看来你租的是虚拟机了,虚拟机我一般不用p链接,访问量大一点就挂了
页:
[1]
2