用户
 找回密码
 入住 CI 中国社区
搜索
查看: 40624|回复: 19
收起左侧

[已解决] 关于Unable to connect to your database server的数据库连接问题

  [复制链接]
发表于 2010-3-16 20:52:07 | 显示全部楼层 |阅读模式
如果访问某些页面比较频繁,或者是其他情况下,经常会出现这样的提示:

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

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

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

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

非常感谢!!
发表于 2015-12-17 14:58:13 | 显示全部楼层
数据库权限不够,授权后就行了
发表于 2010-3-16 22:54:50 | 显示全部楼层
CI 也是用 PHP 函数链接的数据库,不存在什么特殊的地方。
用纯 PHP 试试。
 楼主| 发表于 2010-3-18 21:13:20 | 显示全部楼层
谢谢Hex。这两天搜索了一下国外网站,找到了解决方案,就是在config的database.php中,加一个数据库连接端口:
$db['default']['port'] = "3306";

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

供后来人参考吧。
发表于 2010-3-19 08:11:15 | 显示全部楼层
回复 3# lzyname

我之前也遇到过这种问题,换了个好点的服务器就好了,一直也没有深入的找原因,看到你的解决办法,回去试试,呵呵
发表于 2010-3-19 09:08:28 | 显示全部楼层
不是 my.cnf 中的 max_connection 的数量问题吗?
 楼主| 发表于 2010-3-21 03:30:17 | 显示全部楼层
这个问题其实很早以前就问过一次,但是经过这几天的学习,我发现CI还是需要自己写释放数据库连接的代码的,即get完需要写$query->free_result()释放这个数据库资源才可以。看看这样是否有效吧。确实是max_user_connections的问题,说明没有close啊。。。可是之前问的时候大家都说CI是自动带close功能的,我也没在意。。。现在出状况了,头疼了好几天了。
发表于 2011-1-28 09:30:35 | 显示全部楼层
上面的方法都試了,不行,后來就分析配置,發現將$db['default']['pconnect'] = FALSE;就可以了~~~
发表于 2011-1-28 10:33:29 | 显示全部楼层
虽然没遇到过,学习
发表于 2011-5-19 15:32:59 | 显示全部楼层
本帖最后由 p0o9o9p0 于 2011-7-23 16:08 编辑

学了
发表于 2011-5-19 15:45:41 | 显示全部楼层
看来你租的是虚拟机了,虚拟机我一般不用p链接,访问量大一点就挂了

本版积分规则