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 将图片按创建时间进行分类存储的实现代码
Jan 05 PHP
PHP 循环列出目录内容的函数代码
May 26 PHP
php抓取页面与代码解析 推荐
Jul 23 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
Yii2 assets清除缓存的方法
May 16 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 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与ASP
2006/10/09 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
javascript实现连续赋值
2015/08/10 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
深入探究node之Transform
2017/07/20 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
VUE脚手架具体使用方法
2019/05/20 Javascript
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python实现多进程通信实例分析
2019/09/01 Python
使用Python的turtle模块画国旗
2019/09/24 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
数据库测试通常都包括哪些方面
2015/11/30 面试题
基层工作经历证明
2014/01/13 职场文书
小学安全教育材料
2014/02/17 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
安全先进班组材料
2014/12/26 职场文书
工程项目合作意向书
2015/05/08 职场文书
python numpy中multiply与*及matul 的区别说明
2021/05/26 Python
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers