打开 php.ini文件,找到这1行

mysql.default_socket

然后将它修改为

mysql.default_socket=/path/to/mysql.sock

/path/to/mysql.sock是mysql的配置文件/etc/my.cnf中的socket的路径

如我当前虚拟机中的mysql 配置文件/etc/my.cnfsocket = /tmp/mysql.sock,所以修改php.ini中找到的mysql.default_socket = 都改为mysql.default_socket = /tmp/mysql.sock,然后重启 apache,使配置生效


系统:Ubuntu 16.04

环境: Apache 2.4 + PHP 5.6.40 + Mysql 5.5.31

php连接mysql demo代码:

$conn = mysql_connect('localhost','root','secret');

if(!$conn){
die(mysql_error());
} echo "success";

主机使用localhost,显示No such file or directory的错误。改为127.0.0.1之后可以连接成功。

前提: 我的mysql配置文件 /etc/my.cnf[mysqld]节点下的配置项 socket = /tmp/mysql.sock

终端命令(用来查看 php 信息中mysql.default_socket的配置情况):

php -i | grep mysql.default_socket

运行结果:

mysql.default_socket => no value => no value
pdo_mysql.default_socket => /var/run/mysqld/mysqld.sock => /var/run/mysqld/mysqld.sock

php.ini中mysql.default_socket的默认路径和当前运行mysql 配置文件中的socket的值/tmp/mysql.sock 不相等

我的LAMP环境中php.ini文件有2个,路径分别是:/etc/php/5.6/cli/php.ini/etc/php/5.6/apache2/php.ini

将上面2个php.ini文件中mysql.default_socket = 都修改成mysql.default_socket = /tmp/mysql.sock,然后重启apache2

终端命令:

sudo service apache2 stop # 停止apache
sudo service apache2 start # 启动apache

再次查看 mysql.default_socket的配置是否生效

终端命令:

php -i | grep mysql.default_socket

运行结果:

mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock

配置成功,然后通过浏览器,访问带有上面 php连接mysql demo代码的文件,运行结果为success.

Reference
  1. MySQL connection not working: 2002 No such file or directory

php 连接mysql 主机 localhost,显示 No such file or directory的更多相关文章

  1. PHP连接MySQL报错"No such file or directory"的解决办法

    好下面说一下连接MYSQL数据库时报错的解决办法. 1,首先确定是mysql_connect()和mysql_pconnect()的问题,故障现象就是函数返回空,而mysql_error()返回“No ...

  2. 解决MAC下PHP连接MYSQL错误Warning: mysql_connect(): No such file or directory in conn.php

    今天在mac上用php去连接mysql数据库,出现了 mac PHP Warning:  mysql_connect(): [2002] No such file... 详细例如以下所看到的: Dir ...

  3. Mac下PHP连接MySQL报错"No such file or directory"的解决办法

    首先做个简短的介绍. [说明1]MAC下MYSQL的安装路径: /usr/local/mysql-5.1.63-osx10.6-x86_64 数据库的数据文件在该目录的data文件夹中: 命令文件在b ...

  4. 【转】Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败

    错误原因如下: Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot ...

  5. php 连接mysql数据库并显示数据 实例 转载

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. Java JDBC连接SQL Server2005错误:通过port 1433 连接到主机 localhost 的 TCP/IP 连接失败

    错误原因例如以下: Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cann ...

  7. Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 及sql2008外围服务器

    转载:Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败 错误原因如下: Exception in thread & ...

  8. SQLServerException:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。

    一.问题描述: 1.连接数据库时抛出的异常: com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 ...

  9. php的mysqli_connect函数显示 No such file or directory错误以及localhost换成127.0.0.1执行成功

    Centos7环境-php7-MariaDB5.5.60 (新安装的php7,执行php -m 显示有mysqli模块,php.ini没有改其它) 测试代码为: <?php //~ echo d ...

随机推荐

  1. Docker-搭建Docker Registry

    私有Docker Registry的部署和配置 从Docker Hub上可以获取官方的Registry的镜像,Registry 默认的对外服务端口是 5000,如果我们宿主机上运行的 Registry ...

  2. Centos7命令行安装Tomcat以及配置防火墙开放端口

    [转载]Centos 7 yum安装tomcat 命令: 系统环境CentOS Linux release 7.2.1511 (Core) 一.搭建准备:1.先到tomcat官网https://tom ...

  3. 对于异步编程Await和Async的理解

    public class AsyncInSync { /// <summary> /// 同步代码里有异步代码 /// /// /// 结果 /// Main Thread Before ...

  4. delphi 设备函数GetDeviceCaps函数

    {说明:以下内容来源于网络,修改多处错误所得 2019.10.04 } GetDeviceCaps 函数功能:该函数检索指定设备的设备指定信息.该函数经常用在操作打印机等设备中.函数原型:int Ge ...

  5. Delphi获取指定文件的版本号

    获取指定文件的版本号 方式一: function GetFileVersion(FileName: string): string; type PVerInfo = ^TVS_FIXEDFILEINF ...

  6. 【IP】虚拟IP原理

    使用场景: 当这台机器出现故障时,自动动态切换到另一台热备的机器 高可用性HA(High Availability) 指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间 ...

  7. Android中ViewPgae中的Fragment如何确认当前页面可见的问题

    由于在ViewPage中PageAdapter来管理所有的Fragment.在加载一个Fragment的时候,会自动缓存左右几个(默认是一个)页面,此时也会调用到正常的生命周期函数,onCreate, ...

  8. I - Nice to Meet You

    传送门 和10-17 B 君的第三题 类似,应该算是简化版,给出了固定的点. f[s]表示只考虑连端都在s集合中的边,s中的固定点(1或者2)能到达整个集合的方案数. 预处理c[s]表示s集合中的总边 ...

  9. Apache解析漏洞复现(CVE-2017-15715),可以绕过黑名单

    照着P神的文章准备复现一下(总结一下经验) 环境的安装 这里面直接使用的vulhub里面的环境来进行安装的(为了方便吗) 基础环境如下    实际上Apache版本在2.4.0~2.4.29即可 i ...

  10. try-with-resources 让java资源关闭代码更简洁

    一.JDK7的资源关闭方式优化 1 try-with-resource语法 在JDK7以前,Java没有自动关闭外部资源的语法特性,直到JDK7中新增了try-with-resource语法,才实现了 ...