无法连接到MAMP

时间:2016-04-08 07:59:30

标签: php codeigniter mamp

您好我正在使用MAMP和Codeigniter。 Codeigniter 版本是2.x 我在Linux [LAMP]上构建了一个应用程序,现在我想将应用程序移动到MAC Book。当我打开Localhost时,它显示错误:

  

发生数据库错误

     

无法使用提供的设置连接到数据库服务器。

     

文件名:core / 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;

在LAMP中我必须做localhost / project但是在这里我有 localhost:8888 / projectname 这可能是原因吗?

2 个答案:

答案 0 :(得分:1)

这个问题可能有几个原因:

  • dbdriver :用 mysqli 替换 mysql 为我工作,如果不起作用,你也可以试试 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;

答案 1 :(得分:0)

尝试为localhost:port设置$db['default']['hostname'],因此在您的情况下看起来应该如此

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

如果您有任何进一步的疑问,请告诉我