PHP中使用localhost连接Mysql不成功的解决方法


Posted in PHP onAugust 20, 2014

发现问题

昨天在帮同事编译安装Linux环境时,遇到一个问题:
WEB服务器是apache,数据库是MySQL。

于是写了一个测试连接数据库的PHP页面:

$mysql = mysql_connect('localhost','root','');

打开 http://localhost/test.php 测试

提示:Can't connect to local MySQL server through socket...

检查环境正常

以为是数据库没有启动,于是查看一下进程,MySQL在进程里,重启了一下MySQL.

使用mysql -u root -p 可以进入MySQL操作界面

直接使用/usr/local/php5/bin/php /web/test.php执行可以连上数据库
apache也重启了,一样无效

疑点:为何网页执行失败,命令执行却成功

这下就郁闷了,使用php命令直接执行就成功,通过网页执行就失败。难道是apache导致?网上搜索了大堆资料也没找到解决方案,重新编译安装apache问题依旧。

把localhost改成127.0.0.1成功

把localhost改成127.0.0.1后竟然连接成功了,开始陷入思考困局:localhost失败127.0.0.1却成功?

ping localhost 地址是127.0.0.1没错

打开hosts加入

127.0.0.1 qttc

使用qttc当主机连接也正常,唯独就不认localhost。

localhost连接方式不同导致

为了了解PHP连接数据库时,主机填写localhost与其它的区别阅读了大量资料,最后得知:

当主机填写为localhost时mysql会采用 unix domain socket连接
当主机填写为127.0.0.1时mysql会采用tcp方式连接
这是linux套接字网络的特性,win平台不会有这个问题

解决方法

在my.cnf的[mysql]区段里添加

protocol=tcp

保存重启MySQL,问题解决!
PHP 相关文章推荐
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
php&mysql 日期操作小记
Feb 27 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
wordpress自定义url参数实现路由功能的代码示例
Nov 28 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP中提问频率最高的11个面试题和答案
Sep 02 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
Smarty变量调节器失效的解决办法
Aug 20 #PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 #PHP
PHP基于数组实现的分页函数实例
Aug 20 #PHP
PHP中读取照片exif信息的方法
Aug 20 #PHP
PHP函数eval()介绍和使用示例
Aug 20 #PHP
PHP命令行脚本接收传入参数的三种方式
Aug 20 #PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 #PHP
You might like
PHP操作mysql函数详解,mysql和php交互函数
2011/05/19 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
jsonp跨域获取数据的基础教程
2018/07/01 Javascript
element-ui表格列金额显示两位小数的方法
2018/08/24 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
setTimeout与setInterval的区别浅析
2019/03/23 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
python 运算符 供重载参考
2009/06/11 Python
Python 抓取动态网页内容方案详解
2014/12/25 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python实现斐波那契数列的方法示例
2017/01/12 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
详解python pandas 分组统计的方法
2019/07/30 Python
移动web模拟客户端实现多方框输入密码效果【附代码】
2016/03/25 HTML / CSS
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
怎样写留学自荐信
2013/11/11 职场文书
腾讯广告词
2014/03/19 职场文书
产品售后服务承诺书
2014/05/21 职场文书
文明寝室标语
2014/06/13 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
实习指导老师意见
2015/06/04 职场文书
组织委员竞选稿
2015/11/21 职场文书
解析redis hash应用场景和常用命令
2021/08/04 Redis
mysql 索引的数据结构为什么要采用B+树
2022/04/26 MySQL