【问题标题】:Unable to connect to database in codeigniter in MAMP无法在 MAMP 的 codeigniter 中连接到数据库
【发布时间】:2016-04-08 07:59:29
【问题描述】:

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

发生数据库错误

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

文件名: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 这可能是原因吗?

【问题讨论】:

  • 你的mac的mysql监听的端口是什么?
  • 我怎么知道?我只看到 root@localhost
  • 您的用户名和密码是否允许您访问 PhpMyAdmin(如果您使用它)或其他手动访问数据库?

标签: php codeigniter mamp


【解决方案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;

【讨论】:

    【解决方案2】:

    尝试将localhost:port 设置为$db['default']['hostname'],所以在你的情况下应该是这样的

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

    如果您有任何疑问,请告诉我

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 2015-09-30
      • 2018-05-16
      • 1970-01-01
      • 2020-03-07
      相关资源
      最近更新 更多