2017-04-09 90 views
1

我对开发相当陌生,而且我对codeigniter完全陌生。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”被替换为我们的数据库的用户名和密码)

我收到以下错误:

Unable to connect to your database server using the provided settings.

Filename: core/Loader.php

Line Number: 346

core/Loader.php的第346行是附图中的public function database

事情我已经尝试:

• I've tried changing the $config['base_url'] to 'http://localhost:8888/'; but I still get the same error

• Deleting the hostname, username and password from the database.php file, still get the same error

我不知道为什么本地版本不能访问数据库时,现场直播可以使用相同的登录凭据?任何帮助非常感谢,因为我刚刚开始这个新的职位,这是我的第一个公司项目之一,它让我难住。我仍然需要弄清楚如何添加页面,但是我甚至无法在本地加载该站点,因此我可以对其进行处理。

更新

这里就是我的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; 

** 链接到我的视频(试图)解释这个问题: **

Link#1:CodeIgniter Database Error Issue YouTube

感谢您的帮助!

core/loader.php

+0

使用CodeIgniter我始终运行在本地主机上复制副本,然后进行任何更改,我需要,从该 – Brad

+0

的活网站,谢谢,我试图在本地主机上运行,​​并获得数据库错误,如上面的链接上面的视频所示 – Kaden2014

+0

所以我想通了,谢谢非常适合所有的帮助!我(显然)在不同的位置安装了mysql数据库,MAMP无法引用它。我意识到这一点,因为我输入的数据库没有出现在MAMP> PHPMyAdmin中。我遵循了从终端导入数据库的Codeigniter教程 - 然后从终端“php -S localhost:8080”运行内部PHP服务器。这是导致数据库错误的原因 - 没有数据库! MAMP看不到上传到终端文件夹位置的数据库。 – Kaden2014

回答

0

如果您运行的是甲基苯丙胺(Mac版)你的MySQL默认密码为“根”

所以数据库配置文件看起来像

$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';

+0

感谢ANKIT,我试过,但没有运气,我仍然得到错误:数据库错误使用发生 无法连接到数据库服务器所提供的设置。 文件名:core/Loader.php 行号:346 – Kaden2014

+0

请忽略对数据库文件的引用。我做了一个备份,并把它放在我的项目文件夹中。 – Kaden2014

1

配置文件位于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,然后重试参数。

+0

谢谢,我已经改变到这些设置,仍然得到相同的错误。我已经将网站数据库下载到本地计算机,并在MySQl中创建了一个具有相同名称的数据库,并通过终端将.sql文件导入MySQL,因此CodeIgniter应该试图访问该特定数据库。这真的令人沮丧,我可以看到网站的图标,所以我知道它正在加载一些文件..... – Kaden2014

+0

仍然问题没有解决? –

+0

我在视频中添加了OP的链接,希望能够更好地解释/说明我正在处理的内容以及我遇到的错误。我在项目文件夹里面有数据库文件......? – Kaden2014

0

确保root拥有本地主机的登录权限。一些MySQL实例对这些事情非常严格。

+0

感谢马蒂亚斯,这里就是我得到的,当我输入SHOW赠款“根” @“localhost”的; – Kaden2014

+0

GRANT ALL PRIVILEGES ON * TO '根' @ 'localhost' 的WITH GRANT OPTION。| | GRANT PROXY ON“” @“” TO“根” @“localhost”的WITH GRANT OPTION – Kaden2014

相关问题