codeigniter教程:Codeigniter出现Unable to connect to your databas

Codeigniter出现A Database Error Occurred错误

下午把项目构建到服务器上的时候,codeigniter竟然出现了 a database error occurred 错误,以前在使用ci开发项目的时候没有遇到过这问题。

在本地测试虚拟机测试环境下没有出现问题,构建到生产环境后出现问题,觉得应该是系统配置问题。没有认真找其中的缘由,临时找了个方法解决了测试项目了。

1、更改入口文件 index.php 中的ENVIRONMENT 常量值

更改:
define('ENVIRONMENT', 'development');
为:
define('ENVIRONMENT', 'production');

临时屏蔽错误出现。

2、修改数据库配置项

修改:
$db['default']['db_debug'] = TRUE;
为:
$db['default']['db_debug'] = FALSE;

以上两步就可以解决Codeigniter出现A Database Error Occurred错误的问题,这只是治标的方法。

出现Unable to connect to your database server using the provided settings错误

问题的真正原因了:没有权限访问数据库。

错误提示:

Unable to connect to your database server using the provided settings

在找数据库链接问题的时候一直带着已经有权限访问的前提下去寻找答案,最后没辙了,又从源头开始找。

解决过程:

在config/database.php最后加上如下代码进行调试。

echo '<pre>';
 print_r($db['default']);
echo '</pre>';

echo 'Trying to connect to database: ' .$db['default']['database'];
$dbh=mysql_connect
(
$db['default']['hostname'],
$db['default']['username'],
$db['default']['password'])
or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($db['default']['database']);

echo '<br />   Connected OK:'  ;
die( 'file: ' .__FILE__ . '--> Line: ' .__LINE__);

重新访问网站,提示服务器没有权限访问数据库,又屁颠屁颠地去设置了访问权限后,一切OK。

通过这件事,得到教训:别人说的,有时未必完全是正确的,验证了那句话“眼见为实”。

原文地址:https://www.cnblogs.com/bluealine/p/8206182.html