2017-04-09 88 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

相關問題