首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告: mysqli_connect():(HY000/2002):没有这样的文件或目录

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

Stack Overflow用户
提问于 2013-11-19 13:43:39
回答 6查看 118.9K关注 0票数 76

我试图在我的Mac上安装普通论坛,为此,我从MySQL命令行创建了一个数据库和一个用户:

代码语言:javascript
复制
mysql> CREATE DATABASE vanilla;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'vanilla_user3'@'localhost' IDENTIFIED BY 'vanilla_password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'vanilla_user3'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

因此,我尝试使用以下代码进行连接:

代码语言:javascript
复制
$con=mysqli_connect("localhost","vanilla_user3","vanilla_password","vanilla");
if (mysqli_connect_errno($con)) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

但不幸的是,我说错了

警告: mysqli_connect():(HY000/2002):在第3行的/Users/kramer65 65/Sites/vanilla/info.php中没有这样的文件或目录连接到MySQL:没有这样的文件或目录

知道我哪里出问题了吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-19 14:37:38

好吧,我刚找到解决办法。问题是主机不应该是localhost,而应该是127.0.0.1。我一直认为localhost和127.0.0.1是一样的,但结果却是不同的。

因此,可能作为对未来用户的提示,总是在有疑问的时候使用ip。

票数 209
EN

Stack Overflow用户

发布于 2016-11-10 13:19:07

我也有同样的问题,但问题与php.ini文件有关。

我必须在/etc/php.ini中编辑这两行(或者您的php.ini位于哪里):

代码语言:javascript
复制
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

重新启动apache服务器,以确保更改得到反映。

代码语言:javascript
复制
sudo apachectl restart
票数 20
EN

Stack Overflow用户

发布于 2020-01-26 05:15:23

如果使用docker,使用mysql容器名作为mysql的主机名。例如,如果这是码头撰写文件:

代码语言:javascript
复制
mysqldb:
    image: mysql:5.7.22
    container_name: mysqlHost
    ports:
        - "33099:3306"

主机名是mysqlHost,端口是3306,而不是33099!

如果不使用docker,docker ps将显示正在运行的容器名称。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20073168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档