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一句话cmdshell新型 (非一句话木马)
Apr 18 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 PHP
PHP微框架Dispatch简介
Jun 12 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
PHP打印输出函数汇总
Aug 28 PHP
PHP中overload与override的区别
Feb 13 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
Mar 07 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
WAF的正确bypass
2017/01/05 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
2009/12/02 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
微信JS接口汇总及使用详解
2015/01/09 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
2016/11/17 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
Python群发邮件实例代码
2014/01/03 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python列表list保留顺序去重的实例
2018/12/14 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
mysql主从复制的实现步骤
2021/10/24 MySQL
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers