当前我的情况是安装上mysql配置了my.cnf中的socket,并且在指定位置也生成了 mysql.sock 的sock文件,此时我通过php.ini来设置php连接mysql.sock的文件,但是不管怎么修改,从php.info中看到对应的mysql.sock的文件路径都是同一个位置,我设置的属性也不生效。

vim /etc/php.ini

mysql.default_socket = /data/svr/mysql/mysql_3306/tmp/mysql.sock

pdo_mysql.default_socket= /data/svr/mysql/mysql_3306/tmp/mysql.sock

mysqli.default_socket = /data/svr/mysql/mysql_3306/tmp/mysql.sock

  

nm,怎么还是连接这里

nm,有完没完了

这个也添乱!!

Google了数篇文章,通过自己的消化理解,大致上了解了错误的原因:当初编译安装MySQL和PHP的时候,没有通过编译参数去指定MySQL的Socket路径,于是程序就把其Socket路径的默认值/bar/mysql.sock给编译进去了。之后实际运行的时候,通过配置文件更改了Socket路径到/foo/mysql.sock,因为所有配置文件的所有相关小节我都设置成一致的新路径,所以MySQL自己的命令行客户端、PHP的mysql扩展、PHP的mysqli扩展均能正常工作,都按照指定的新的路径去连接Socket。但是偏偏PDO抽风,根本不理会设置值,只是一门心思的按照编译中指定的值去连接,所以导致出错(猜测或者不是因为PDO执着,而是PHP本身的关系,因为我pdo_mysql是编译进PHP主程序的,而不是通过so扩展。phpinfo中的MYSQL_SOCKET值应该就是编译的默认值)。

据我消化理解来的知识,似乎此问题没有办法通过配置文件解决,MYSQL_SOCKET根本无从修改,估计是编译定死了,变成PHP或者PDO的一个静态常量了。唯一的解决途径就是重新编译PDO(如果它是so扩展)或者重新编译整个PHP(就是我这种,PDO是被编译进PHP的情况)。

于是,我的解决办法是,妥协!我把所有设置从/foo/mysql.sock改回成编译默认值的/bar/mysql.sock,PDO终于不报错了,可以正常连接了。


以下是我的问题所在

'./configure' '--prefix=/opt/svr/php5.3.10'  \
'--with-config-file-path=/opt/svr/php5.2.1/etc' \
'--with-mysql=/data/svr/mysql/mysql_3306' \
'--with-mysqli=/data/svr/mysql/mysql_3306/bin/mysql_config' \
'--with-pdo-mysql=/data/svr/mysql/mysql_3306' \
'--with-zlib' '--enable-xml' \
'--disable-rpath' \
'--enable-bcmath' \
'--enable-shmop' \
'--enable-sysvsem' \
'--with-curl' \
'--enable-fpm' \
'--with-mcrypt' \
'--with-gd' \
'--with-openssl-dir=/usr/lib64/openssl/' \
'--with-mhash' \
'--enable-socket' \
'--with-ldap' \
'--with-ldap-sasl' \
'--with-xmlrpc' \
'--enable-zip' \
'--enable-soap' \
'--enable-pdo' \
'--with-pdo-mysql=/usr' \
'--with-jpeg-dir=/usr/lib' \
'--with-png-dir=/usr/lib' \
'--with-iconv=/usr/local/include/' \
'--enable-fastcgi' 命名我的mysql是安装在 /data/svr/mysql/mysql_3306', 最后我却把 --with-pdo-mysql配置在了/usr 下。所以最后你就算跳过编译错误这段,继续make make install 并且成功了,php在使用pdo_mysql
的时候肯定会去/usr/这个路径下找mysql ,所以就找不到了

php 连接mysql的问题的更多相关文章

  1. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  2. 【初学python】使用python连接mysql数据查询结果并显示

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  3. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  4. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  5. 使用ABP EntityFramework连接MySQL数据库

    ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...

  6. jmeter之连接mysql和SQL Server配置

    下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...

  7. Windows操作系统下远程连接MySQL数据库

    用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...

  8. Hibernate连接mysql数据库的配置

    <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...

  9. C# 3种方法连接MySql

    转   http://wenku.baidu.com/view/d0cf34708e9951e79b8927c7.html C# 连接MYSQL数据库的方法及示例 连接MYSQL数据库的方法及示例 方 ...

  10. cmd连接mysql的方法详解(转载)

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...

随机推荐

  1. linux终端快捷键

    tab 补全 ctrl+k 删除此处到末尾所有内容 ctrl+u 删除此处到开始所有内容 ctrl+a 将光标移至开始处 cttl+e 将光标移至结尾 ctrl+l 清屏 ctrl+c 删除整行或停止 ...

  2. linux下配置环境变量【原创】

    用户目录下的.profile, 你只需要在用户目录下,创建bin目录,在里面放入你想要执行的可执行文件,就可以在命令行下就可以使用了 # ~/.profile: executed by the com ...

  3. linux内核中异步通信机制--信号处理机制【转】

    转自:http://blog.csdn.net/lu_embedded/article/details/51131663 什么是异步通信?很简单,一旦设备准备好,就主动通知应用程序,这种情况下应用程序 ...

  4. React-Native入门指导之iOS篇

    React-Native 入门指导系列教程目录 一.准备工作 (已完成) 二.项目介绍与调试 三.CSS样式与Flex布局 四.常用UI控件的使用 五.JSX在React-Native中的应用 六.事 ...

  5. Greenplum迁移到配置不同的GP系统

    要使用gp_restore或gpdbrestore并行恢复操作,恢复的系统必须与备份的系统具有相同的配置(相同数量的Instance).如果想要恢复数据库对象和数据到配置不同的系统(比如系统扩展了更多 ...

  6. mysql btree与hash索引的适用场景和限制

    btree索引: 如果没有特别指明类型,多半说的就是btree索引,它使用btree数据结构来存储数据,大多数mysql引擎都支持这种索引,archive引擎是一个例外,5.1之前这个引擎不支持任何索 ...

  7. 每日一九度之 题目1040:Prime Number

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6732 解决:2738 题目描述: Output the k-th prime number. 输入: k≤10000 输出: The k- ...

  8. 【转】MYSQL入门学习之三:全文本搜索

    转载地址:http://www.2cto.com/database/201212/173873.html 一.理解全文本搜索   www.2cto.com   1.MyISAM支持全文本搜索,而Inn ...

  9. CSS select样式列表-------美化列表

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. vsftp 用无法登陆的用户名登陆(也叫虚拟用户)并进入到自己的文件夹test

    1.不需要使用到PAM认证也可以,useradd redhat; usermod -s /sbin/nologin redhat; passwd redhat. 2.userlist_deny=NO; ...