我对开发还很陌生,而且我对codeigniter完全陌生。
我从我公司的服务器上下载了一个CodeIgniter项目,该项目是我从之前的开发人员那里继承的。
我需要在网站上添加新页面。由于我是CI的新手,我(显然)不想编辑实际网站,但我无法让网站在本地运行。我尝试在运行Yosemite 10.10.5的Mac上通过MAMP或终端中的PHP服务器在本地服务器上运行它。
我已将项目文件夹添加到MAMP中的htdocs但是当我打开http://localhost:8888/index.php/contact时,屏幕显示为空白。当我尝试使用以下方法通过终端访问同一文件夹时:
env DB_USER=XXXX DB_PASSWD=XXXX DB_NAME=XXXX php -S localhost:8080
(其中' XXXX'被我们的数据库用户名和密码替换)
我收到以下错误:
无法使用提供的设置连接到数据库服务器。
文件名:core / Loader.php
行号:346
core/Loader.php
的第346行是附加图片中的public function database
。
我尝试过的事情:
•我们已尝试将
$config['base_url']
更改为'http://localhost:8888/';
,但我仍然遇到同样的错误•从
database.php
文件中删除主机名,用户名和密码仍会出现同样的错误
我不确定当实际网站可以使用相同的登录凭据时,本地版本为什么无法访问数据库?我刚开始这个新职位时,非常感谢任何帮助,这是我公司的第一个项目之一,让我感到难过。我仍然需要弄清楚如何添加页面,但我甚至无法在本地加载网站,因此我可以继续使用它。
更新
这是我的database.php
文件的样子......它没有设置为数组:
/* The $active_group variable lets you choose which connection group to
make active. By default there is only one group (the 'default' group).
The $active_record variables lets you determine whether or not to load
the active record class */
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'database_name'; // contains actual name
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
** 链接到我的视频(尝试)解释此问题: **
链接#1:CodeIgniter Database Error Issue YouTube
感谢您的帮助!
答案 0 :(得分:2)
配置文件位于application/config/database.php
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost', // pass this
'username' => 'root', // pass this
'password' => '', // pass this
'database' => 'database_name', // pass this
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => TRUE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array()
);
只需传递我提及// pass this
的参数,然后重试。
答案 1 :(得分:1)
确保root在localhost中具有登录权限。有些MySQL实例对这些事情非常严格。
答案 2 :(得分:1)
如果您正在运行它MAMP(Mac版)您的mysql默认密码是“root”
所以数据库配置文件看起来像
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root';
$db['default']['database'] = 'database_name'; // contains actual name
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
更新了$db['default']['password'] = 'root';