2016-04-08 39 views
2

嗨,我正在使用MAMP和Codeigniter。 Codeigniter 版本是2.x我在Linux [LAMP]上構建了一個應用程序,現在我想將應用程序移動到MAC Book。當我打開本地主機它爲我的錯誤:無法連接到MAMP中的codeigniter中的數據庫

數據庫出錯

無法使用提供的設置連接到你的數據庫服務器。

文件名:核心/ Loader.php

行號:347

現在可能是什麼原因?我的憑證是正確的,但也許我試圖以錯誤的方式訪問它?

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'biz_prov'; 
$db['default']['dbdriver'] = 'mysql'; 
$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; 

燈我不得不這樣做本地主機/項目,但在這裏,我本地主機:8888 /項目名稱這會是可能的原因是什麼?

+0

你的mac的mysql監聽的端口是什麼? –

+0

我怎麼知道?我只看到root @ localhost – Rajan

+0

您的用戶名和密碼是否允許您訪問PhpMyAdmin(如果您使用它)或其他手動訪問數據庫? – Goose

回答

1

可能有兩個原因針對此問題:

  • dbdriver:更換MySQL的mysqli的工作對我來說,如果不工作,你也可以用SQLSRV嘗試

    $db['default']['dbdriver'] = 'mysqli'; // mysqli for mac, 
    
    $db['default']['dbdriver'] = 'mysql'; //mysql for windows 
    
  • pconnect:您可能需要設置爲FALSE

    $db['default']['pconnect'] = TRUE; 
    
  • 而且,憑證。請驗證您的用戶名和密碼,因爲證書不匹配時會出現相同的錯誤。同時

一件事,你可能並不需要修改所有,但它不會傷害嘗試當事情不工作:)

樣品以供參考:

$db['default']['hostname'] = 'localhost'; // try using ip or ip and port if needed(trying doesn't hurt). 
$db['default']['username'] = '*****'; // provide your username 
$db['default']['password'] = '*****'; // provide your password 
$db['default']['database'] = 'storedb'; 
$db['default']['dbdriver'] = 'mysqli'; // mysqli for mac, mysql for windows 
$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; 
0

嘗試設置localhost:port$db['default']['hostname'],所以它應該是這樣的,你的情況

$db['default']['hostname'] = 'localhost:8888'; 

讓我知道如果您有任何疑問

+0

我試過了,但沒有工作 – Rajan