php 连接mysql的问题
当前我的情况是安装上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的问题的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Node.js Express连接mysql完整的登陆注册系统(windows)
windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- 使用ABP EntityFramework连接MySQL数据库
ASP.NET Boilerplate(简称ABP)是在.Net平台下一个很流行的DDD框架,该框架已经为我们提供了大量的函数,非常方便与搭建企业应用. 关于这个框架的介绍我就不多说,有兴趣的可以参见 ...
- jmeter之连接mysql和SQL Server配置
下载jdbc驱动 在使用jmeter做性能或自动化测试的时候,往往需要直接对数据库施加压力,或者某些参数只能从数据库获取,这时候就必须使用jmeter连接数据库. 1.下载对应的驱动包 mysql驱动 ...
- Windows操作系统下远程连接MySQL数据库
用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
- Hibernate连接mysql数据库的配置
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...
- C# 3种方法连接MySql
转 http://wenku.baidu.com/view/d0cf34708e9951e79b8927c7.html C# 连接MYSQL数据库的方法及示例 连接MYSQL数据库的方法及示例 方 ...
- cmd连接mysql的方法详解(转载)
连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...
随机推荐
- 鸟哥的linux私房菜学习记录之正则表达式
正则表达式具有强大的字符串处理能力,常常用来搜索删除和替换字符串,用途很广. sed awk数据处理工具 diff,cmp,patch,pr文档对比工具
- scala 隐式转换
先参考这篇文章:http://www.jianshu.com/p/a344914de895 package com.test.scalaw.test /** * scala隐式转换 */ object ...
- 不同版本(2.3,2.4,2.5)的Servlet web.xml 头信息
Servlet 2.3<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app P ...
- git修改文件名大小写的方法。
首先,在git命令行里面运行: git config core.ignorecase false 此命令是全局设置,以后在此机子上clone出来的git仓库工程都沿用此设置.当然,以前就已经clone ...
- mysql5.5.x升级到mysql5.6.x
大概步骤是: 把配置文件添加:skip-grant-tables参数,把basedir升级成新版本,启动mysql,执行命令:mysql_upgrade升级一下字典信息,然后flush privile ...
- ACM题目————滑雪
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- ACM题目————星际之门(一)
描述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门,它利用虫洞技术,一条虫洞可以连通任意的两个星系,使人们不必再待待便可立刻到达目的地. 帝国 ...
- ubuntu12.04下安卓编译环境搭建总结
前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...
- YTU 3013: 皇后问题(递归)
3013: 皇后问题(递归) 时间限制: 1 Sec 内存限制: 128 MB 提交: 2 解决: 2 题目描述 编写一个函数,求解皇后问题:在n*n的方格棋盘上,放置n个皇后,要求每个皇后不同行 ...
- PHP中cookie和Session
Cookie与Session cookie 列子 if(!isset($_COOKIE['cookie'])){ setcookie("cookie",date('Y-m-d H: ...