发生数据库错误!由 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工作流?

为啥我往WMP添加音乐文件时属性发生变化?

如何修复由 SpringSecurity 引起的 Forbidden 403 错误?

运行所选代码生成器时出错:'对象引用未设置为对象的实例。'错误?

如何修复仅在 ios 而不是 android 上发生的虚线边框错误?

金蝶12.0 SQL SERVER数据库可能发生了架构损坏,请运行 DBCC CHECKCATALOG的错误修复