繁体   English   中英

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

[英]Getting error mysqli::real_connect(): (HY000/2002): No such file or directory when I try to access my project on live server

我已将我的网站上传到服务器,然后我尝试访问,但代码点火器向我返回了我找不到任何答案的错误。 为什么会这样?

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

$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,
);

MySQL 连接驱动程序在 localhost 的位置没有得到任何有意义的服务器。 所以用,

'hostname' => '127.0.0.1' 

而不是

'hostname' => 'localhost'

我有这个错误

mysqli::real_connect(): (HY000/2002): 没有那个文件或目录

来自在我的 Mac Mojave 上运行的 PhpMyAdmin,MySQL 服务器也在我的 Mac 上运行。

通过编辑PhpMyAdmin/config.inc.php修复它并更改行:

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

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

同样的问题发生在我身上,AWS RDS MySQL。 看了各种来源,但截至本帖,几乎都没有答案。 虽然这个答案对我有帮助,但请记住在服务器上更新主机名。 访问您的 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 Public IP ,位于ec2-dashboard > Network Interfaces > Description : RDSNetworkInterface >> IPv4 Public IP('35.150.12.345') 那里。

注意:请注意只有 IPV4 可以在“主机名”选项下工作。 hostname、cname、domains 会输出数据库连接错误。

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

做以下更改:

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

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

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

127.0.0.1 测试.本地主机

并与教程中的网址http://test.localhost/index.php/news/view连接。 我遇到了那个错误,只能通过更改行来修复它:

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

到:

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

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

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

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

我遇到了同样的问题,就我而言,该网站运行良好很长时间。 由于这里的许多答案都涉及第一次安装和使用,因此我决定为已经正常运行一段时间的系统解决相同的问题,然后突然出现此错误。

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

在我的情况下,问题是在 MySQL 更新期间访问网站时引起的(软件更新程序在后台运行更新 MySQL 组件)。 所以我不得不等待更新完成,然后网站再次启动并正常运行。

所以也要记住这方面。

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

其他答案都不适合我。 我的 Mac OS 10.14.6 上安装了 MySQL 8.0.22,从命令行运行良好。 然而,我所做的是在升级MySQL时选择了更强的密码加密。 这是问题所在,而不是本地主机配置。 config.inc.php 可以指向“localhost”或“127.0.0.1”。 一旦我运行了 phpMyAdmin,我就通过使用两者来确认这一点。

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

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

在我的情况下,需要重新启动 mysql,因为它已停止运行

就我而言,我打开控制台并在 ubuntu 中运行重启命令

sudo service mysql restart

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM