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

lui*_*igi 59 macos mysqli phpmyadmin

mysqli_real_connect(): (HY000/2002): No such file or directory
Run Code Online (Sandbox Code Playgroud)

MacOS上的PhpMyAdmin错误.我想回答我真的不知道我需要做些什么来解决这个问题.

nai*_*iz0 85

在config.inc.php中将localhost更改为127.0.0.1

$cfg['Servers'][$i]['host'] = '127.0.0.1';
Run Code Online (Sandbox Code Playgroud)

原因是如果你使用localhost,pma会尝试连接到mysql.socket.如果您使用127.0.0.1 PMA进行TCP连接应该工作.

  • 我很高兴找到这个让事情变得有效的答案,但真正的解决方法是什么?这是一种解决方法.你*应该*能够使用`localhost`. (4认同)
  • 你是这么想的,但显然不是.关于"连接类型"设置:"从版本4.7.0开始不推荐使用:从4.7.0开始不再使用此设置,因为MySQL根据主机决定连接类型,因此可能会导致意外结果." 参考:https://docs.phpmyadmin.net/en/latest/config.html (2认同)

小智 18

我之前正在尝试这个

cd/opt/lampp/phpmyadmin

然后

gedit config.inc.php

找到这个,

$cfg['Servers'][$i]['host'] = 
Run Code Online (Sandbox Code Playgroud)

如果有localhost变化的话127.0.0.1

注意:如果之前有'//'删除// $cfg['Servers'][$i]['host']

我再次检查 http://localhost/phpmyadmin/

mysqli说:

"phpMyAdmin尝试连接到MySQL服务器,服务器拒绝连接.您应该检查配置中的主机,用户名和密码,并确保它们对应于MySQL服务器管理员提供的信息."

我又打开了config.inc.php ,我找到了

$cfg['Servers'][$i]['password'] =
Run Code Online (Sandbox Code Playgroud)

用密码填写密码

它对我有用.它也可能对你有用.


Sir*_*lam 12

phpmyadmin 2018年10月

定位 config.sample.inc.php

更改

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

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

保存.

然后重命名文件并从名称中删除样本.


Ran*_*man 8

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

背景:

我只是想在我的Mac上运行一些PHPUnit测试,使用终端.我想测试的一些类是必须连接由PHPMyAdmin创建和管理的MySQL数据库,我正在工作的Web应用程序在localhost中工作正常.因此,当我运行该测试用例时,我的终端上出现以下错误:

mysqli_connect(): (HY000/2002): No such file or directory
Run Code Online (Sandbox Code Playgroud)

解:

所以有了痒,我必须解决它并运行我的测试我搜索了几个SO Q&A线程并尝试了.并且一系列变化对我有用.

  1. 找到config.inc.php与PHPMyAdmin相关的文件.
  2. 找到该行$cfg['Servers'][$i]['host']大多数此行可能已默认注释掉,如果是,请取消注释.
  3. 并用以下内容替换该行:

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

  1. 保存并从XAMPP控制面板(manager-osx)重新启动MySQL数据库.
  2. $hostmysqli_connect()方法中的参数值更改为以下:

$_connection = mysqli_connect(**"localhost: 3306"**, $_mysql_username, $_mysql_password, $_database);

注意:3306是我的MySQL端口号,这是它的默认值.在执行这些步骤之前,您应该更好地检查您的实际MySQL端口号是什么.

就这样.对我来说,只有这些步骤才有效,没有别的.我运行了单元测试,它工作正常,DB数据也根据测试正确更新.

为什么这样有效:

我可以找到的最接近的原因是它有效,因为有时该mysqli_connect方法需要数据库的工作套接字(数据库主机的IP地址和端口号).因此,如果您已注释掉该$cfg['Servers'][$i]['host'] = '127.0.0.1';行或将"localhost"设置为其中的值,则会忽略该端口号.但是如果你想使用套接字,那么你必须使用'127.0.0.1'或真正的主机名.(对我而言,无论我们真正拥有哪个默认端口号,我们都必须执行上述步骤.)阅读PHPMyAdmin的以下链接以获取更多详细信息.

希望这可能对那里的其他人有所帮助.

干杯!


Abd*_*lam 8

也许您的SQL服务器已被停止

sudo /etc/init.d/mysql start
Run Code Online (Sandbox Code Playgroud)

  • 服务 mysqld 重启 (3认同)

Ket*_*ale 7

我今天使用以下步骤解决了这个问题:

  1. 如果 phpMyadmin 目录中不存在 config.inc.php 将 config.sample.inc.php 复制到 config.inc.php。

  2. 将套接字添加到 /* Server parameters */

    $cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';
    
    Run Code Online (Sandbox Code Playgroud)
  3. 保存文件并通过url访问phpmyadmin。

如果您使用的是 mysql 8.0.12,您应该使用旧密码加密,因为 php 客户端不支持强加密。 在此处输入图片说明


Abe*_*ace 5

首先,确保mysql服务正在运行:

ps elf|grep mysql
Run Code Online (Sandbox Code Playgroud)

如果正在运行,您将看到这样的输出:

4 S root      9642     1  0  80   0 -  2859 do_wai 23:08 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/tomcat-machine.local.pid
4 S mysql     9716  9642  0  80   0 - 200986 poll_s 23:08 pts/0   00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/tomcat-machine.local.err --pid-file=/var/lib/mysql/tomcat-machine.local.pid
Run Code Online (Sandbox Code Playgroud)

然后在 config.inc.php 中将 localhost 更改为 127.0.0.1

$cfg['Servers'][$i]['host'] = '127.0.0.1';
Run Code Online (Sandbox Code Playgroud)

“root”用户的默认密码为空“”不要输入任何密码

如果它不允许空密码,则需要再次编辑 config.inc.php 并更改:

$cfg['Servers'][$i]['AllowNoPassword'] = true;
Run Code Online (Sandbox Code Playgroud)

问题是配置设置和 MySQL 未运行的组合。这是帮助我修复此错误的原因。