获取错误mysqli :: real_connect():( HY000 / 2002):当我尝试在实时服务器上访问我的项目时,没有这样的文件或目录

时间:2015-04-28 19:22:03

标签: php codeigniter mysqli

我已经将我的网站上传到服务器,然后我试图访问,但代码点火器返回给我的错误,我没有找到任何答案,为什么会发生这种情况?

我的配置数据库设置如下:

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'netservice',
'password' => '*********',
'database' => 'valedastrutas',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE,
);

8 个答案:

答案 0 :(得分:2)

使用AWS RDS MySQL,我遇到同样的问题。看了各种各样的消息来源,但截至本帖,几乎都缺乏答案。 虽然this answer帮助了我,但请记住更新服务器上的主机名。访问您的SSH并按照以下步骤操作:

cd /etc/
sudo nano hosts

现在,在此处附加您的主机名:例如:

127.0.0.1 localhost
127.0.0.1 subdomain.domain.com [if cname redirected to endpoints]
127.0.0.1 xxxxxxxx.xxxx.xxxxx.rds.amazonaws.com [Endpoints]

现在,按如下方式配置config/database.php

$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => '35.150.12.345',
    'username' => 'user-name-here',
    'password' => 'password-here',
    'database' => 'database-name-here',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => TRUE,
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

其中35.150.12.345是您的 IPv4公共IP ,位于ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP('35 .150.12.345')。

注意:请注意,只有IPV4才能使用'hostname'选项。 hostname,cname,domains将输出数据库连接错误。

答案 1 :(得分:2)

我遇到了这个错误

mysqli :: real_connect():(HY000 / 2002):没有这样的文件或目录

在Mac Mojave上运行的PhpMyAdmin中,在Mac上也运行MySQL服务器。

通过编辑PhpMyAdmin/config.inc.php并更改了该行来解决:

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['host'] = '127.0.0.1';

答案 2 :(得分:2)

在 phpmyadmin 版本 5.1.0 所有语言中,配置。文件位于libraries/config.default.php

进行以下更改:

$cfg['Servers'][$i]['host'] = 'localhost';

$cfg['Servers'][$i]['host'] = '127.0.0.1';

答案 3 :(得分:0)

我有同样的问题。我使用的是/ etc / hosts文件中定义的主机:

127.0.0.1 test.localhost

并使用教程中的网址http://test.localhost/index.php/news/view进行连接。我收到了这个错误,只修改了一行:

'主机名' => '本地主机',

为:

'主机名' => ' test.localhost',

答案 4 :(得分:0)

我建议您启用并查看详细的php_errors.log

检查在php.ini中使用session.save_path指定的目录是否存在且是否可写。您可以使用phpinfo()来显示实际的session.save_path。

创建指定为session.save_path的缺少的“phptmp”目录为我解决了这个问题。

答案 5 :(得分:0)

我遇到了同样的问题,就我而言,该网站长期运行良好。由于这里有很多答案是关于首次安装和使用的,所以我决定针对已经运行了一段时间的系统解决相同的问题,然后突然给出此错误。

首先,我认为了解该问题很重要。据我所知(并且我可能是错的),如果驱动程序无法保护与数据库的连接,则会出现此问题。这可能是由许多原因引起的,包括数据库因任何问题或维护而关闭。

就我而言,问题是由于我在MySQL更新期间访问网站而引起的(软件更新程序在后台更新MySQL组件中运行)。因此,我必须等待更新完成,然后网站才能重新启动并正常运行。

所以也要记住这方面。

答案 6 :(得分:0)

也有这个问题。唯一对我有帮助的解决方案-首先通过“ service mysql stop”命令停止mysql服务器,然后再次运行start lampp:“ sudo / opt / lampp / lampp start”。

答案 7 :(得分:0)

没有其他答案对我有用。我在Mac OS 10.14.6上安装了MySQL 8.0.22,可以从命令行正常工作。但是,在升级MySQL时,我选择了更强的密码加密。这是问题所在,而不是localhost配置。 config.inc.php可以指向“ localhost”或“ 127.0.0.1”。一旦我运行了phpMyAdmin,我就同时使用了这两个方法。

解决此问题的方法(对我而言)是单击Mac系统首选项,然后选择MySQL。单击“初始化数据库”,然后切换到“旧版密码加密”。重新启动,一切正常。 MySQL重新启动,位于http:// localhost / phpmyadmin的phpMyAdmin让我没有问题。

一旦我确定我不会愚蠢的事情,我就在等待将Mac升级到OS 15。