打开 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.cnf的socket = /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. JAVA学习,边学习边总结边记录

    纯属个人想法,个人感觉,有什么不足之处,还望看到的人指正. 我将一步一步的往下记录下去,后面会加一个基本完整的程序,敬请期待. 一.java基础 二.java面向对象 三.html,jsp 四.Jav ...

  2. OK。第一个shell script 脚本

    很简单吧.也很容易理解.读取两个字符放到变量firstname和lastname中,然后输出 编辑日期格式 上面是编辑日期格式.下面的例题是按照日期格式来分类创建文件

  3. secureCRT 如何上传下载文件

    首先连接相应服务器,然后在文件选项当中,打开SFTP功能,这个时候会生成一个新的标签栏. 下载: cd 到要下载文件的路径下 lcd 要存放文件的本地路径 get  {filename} 例: cd  ...

  4. POJ-1639 Picnic Planning 度数限制最小生成树

    解法参考的论文:https://wenku.baidu.com/view/8abefb175f0e7cd1842536aa.html 觉得网上的代码好像都是用邻接矩阵来实现的,觉得可能数据量大了会比较 ...

  5. Java创建线程后,调用start()方法和run()的区别

    1) start方法: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码.通过调用Thread类的start()方法来启动一个线程,这时此 ...

  6. vue 非父子组件之间的传值(Bus/总线/发布订阅模式/观察者模式)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. vue 条件渲染v-if v-show

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 八年技术加持,性能提升10倍,阿里云HBase 2.0首发商用

    摘要: 早在2010年开始,阿里巴巴集团开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储,HBase在几代阿里专家的不懈努力下,已经表现得运行更稳定.性能更高效 ...

  9. CSP-S考前各种idea题解乱堆

    快要考试了我还是这么菜. 已经没有心思维护我的博客了.开一篇博文吧.可能会记得很乱. 这也许是我OI生涯的最后一篇博文了?? 肯定很长很长. 不可能的.谁知道什么时候我心态恢复就把上面两句话删掉开始在 ...

  10. STM32嵌入式开发学习笔记(七):串口通信(下)

    下面我们进行几个串口通信的实际应用. 实验一:发信实验,让开发板通过串口向电脑发送信息: #include <stdio.h> #include <stm32f10x.h> # ...