lzyname 发表于 2010-3-16 20:52:07

关于Unable to connect to your database server的数据库连接问题

如果访问某些页面比较频繁,或者是其他情况下,经常会出现这样的提示:

A Database Error Occurred
Unable to connect to your database server using the provided settings.

之前曾经遇到过,也提问过,当时以为是购买的虚拟主机比较便宜,连接数比较少造成的,也没在意。

但是现在放到了一个超级大的服务器上,带宽也非常充足,几乎没什么人在线,但为什么还是会出现这样的问题呢?

提示是说连接不上数据库,之前也以为是自己代码哪里没有写好,但是CI本身并不要求你释放数据库连接什么的,所以实在不知道怎么办了。请高人指点一下,这是怎么回事?我应该怎么办?

非常感谢!!

acshao@126.com 发表于 2015-12-17 14:58:13

数据库权限不够,授权后就行了

Hex 发表于 2010-3-16 22:54:50

CI 也是用 PHP 函数链接的数据库,不存在什么特殊的地方。
用纯 PHP 试试。

lzyname 发表于 2010-3-18 21:13:20

谢谢Hex。这两天搜索了一下国外网站,找到了解决方案,就是在config的database.php中,加一个数据库连接端口:
$db['default']['port'] = "3306";

不知道MySql的默认端口是不是3306,反正我的虚拟主机上的MySql是这个端口,别人的解决方案也一致是这个。CI是支持这个port参数的,但是默认的配置文件里面没写,我觉得默认写上$db['default']['port'] = "";就好了。

供后来人参考吧。

haohailuo 发表于 2010-3-19 08:11:15

回复 3# lzyname

我之前也遇到过这种问题,换了个好点的服务器就好了,一直也没有深入的找原因,看到你的解决办法,回去试试,呵呵

qq123 发表于 2010-3-19 09:08:28

:o 不是 my.cnf 中的 max_connection 的数量问题吗?

lzyname 发表于 2010-3-21 03:30:17

这个问题其实很早以前就问过一次,但是经过这几天的学习,我发现CI还是需要自己写释放数据库连接的代码的,即get完需要写$query->free_result()释放这个数据库资源才可以。看看这样是否有效吧。确实是max_user_connections的问题,说明没有close啊。。。可是之前问的时候大家都说CI是自动带close功能的,我也没在意。。。现在出状况了,头疼了好几天了。

moxuanyuan 发表于 2011-1-28 09:30:35

上面的方法都試了,不行,后來就分析配置,發現將$db['default']['pconnect'] = FALSE;就可以了~~~

xiangxiaodong 发表于 2011-1-28 10:33:29

虽然没遇到过,学习

p0o9o9p0 发表于 2011-5-19 15:32:59

本帖最后由 p0o9o9p0 于 2011-7-23 16:08 编辑

学了

visvoy 发表于 2011-5-19 15:45:41

看来你租的是虚拟机了,虚拟机我一般不用p链接,访问量大一点就挂了
页: [1] 2
查看完整版本: 关于Unable to connect to your database server的数据库连接问题