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 相关文章推荐
在mysql数据库原有字段后增加新内容
Nov 26 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
js+php实现静态页面实时调用用户登陆状态的方法
Jan 04 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP Yii框架之表单验证规则大全
Nov 16 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
thinkphp5 模型实例化获得数据对象的教程
Oct 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个人网站架设连环讲(一)
2006/10/09 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
jquery使用hide方法隐藏指定id的元素
2015/03/30 Javascript
jQuery实现的简单提示信息插件
2015/12/08 Javascript
JS实现弹出居中的模式窗口示例
2016/06/20 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
JS去除字符串最后的逗号实例分析【四种方法】
2019/06/20 Javascript
Python Django 命名空间模式的实现
2019/08/09 Python
python实现电子词典
2020/03/03 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
大学毕业生自荐书怎么写?
2014/01/06 职场文书
打架检讨书500字
2014/01/29 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
中文专业自荐书
2014/06/29 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技