2016-04-08 40 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