发生数据库错误!由 db_debug 修复设置为 false?
Posted
技术标签:
【中文标题】发生数据库错误!由 db_debug 修复设置为 false?【英文标题】:A Database Error Occurred! fixed by db_debug set to false? 【发布时间】:2013-05-31 16:33:05 【问题描述】:您好,我只是想澄清一下我心中的问题。我有一个错误
Unable to connect to your database server using the provided settings.
Filename: core/Loader.php
Line Number: 346
在阅读了有关该错误的一些问题后,我尝试将 $db['default']['db_debug'] = TRUE;
设置为 $db['default']['db_debug'] = FALSE;
并且它有效!
正如我在 CI 数据库配置手册中看到的那样
db_debug - TRUE/FALSE (boolean) - Whether database errors should be displayed.
我想知道这确实解决了问题或隐藏了错误,但如果它只是隐藏它,它是如何工作的?我担心它可能会导致未来的问题。
同样的问题存在here。
任何信息和想法都是很大的帮助,非常感谢。非常感谢!
【问题讨论】:
这是错误还是通知? 您是否尝试检查日志或在$db
上使用var_dump
来查看任何错误消息?您需要消息来诊断和解决问题。
@jerin “发生数据库错误无法使用提供的设置连接到您的数据库服务器。”它没有提到,我认为它不是 Apache 错误
@steve 我稍后会尝试检查。现在它修复了我只是将调试设置为false,它似乎可以正常工作。
如果功能正常,会是通知或警告。能否将完整内容粘贴到错误消息中?
【参考方案1】:
它对我有用
$db['default']['pconnect'] = FALSE;
【讨论】:
持久连接的使用与 OP 问题有何关系? 它将禁用mysql的长连接功能。如果您的托管服务器不支持持久连接,您将收到错误消息。【参考方案2】:我找到了原因。在我的情况下,数据库错误是因为我在 php.ini 中的 mysql 配置不正确。
在 php.ini 中设置 mysql 配置后,CI 运行良好,如下所示:
[Mysql]
mysql.default_socket = /tmp/mysql.sock
如果你没有配置php.ini,默认socket是/var/mysql/mysql.sock,请检查一下。
我之前也将 $db['default']['db_debug] 设置为 FALSE,看起来没问题,但没有。 它只是隐藏了mysql配置的错误,当我测试从mysql的表中读取时,我什么也没有,也不知道为什么什么也没有。 于是我调试了一下,发现是因为我的mysql连接没有建立。 :(
【讨论】:
【参考方案3】:尝试将$db['default']['pconnect'] = TRUE;
设置为false而不是$db['default']['db_debug'] = TRUE;
【讨论】:
是的,我可以这样做,但为什么呢?有什么解释吗? Check here以上是关于发生数据库错误!由 db_debug 修复设置为 false?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复由于无法更新项目而导致“错误发生”的SharePoint工作流?
如何修复由 SpringSecurity 引起的 Forbidden 403 错误?
运行所选代码生成器时出错:'对象引用未设置为对象的实例。'错误?