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 23 PHP
使用PHP静态变量当缓存的方法
Nov 13 PHP
ThinkPHP模板自定义标签使用方法
Jun 26 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
Dec 17 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
php发送与接收流文件的方法
Feb 11 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
php限制文件下载速度的代码
Oct 20 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
详解PHP数组赋值方法
2015/11/07 PHP
浅析PHP中的i++与++i的区别及效率
2016/06/15 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
PHP实现百度人脸识别
2019/05/06 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
JS面向对象编程 for Cookie
2010/09/19 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python对文件操作知识汇总
2016/05/15 Python
Python编写Windows Service服务程序
2018/01/04 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
pytorch打印网络结构的实例
2019/08/19 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
python安装和pycharm环境搭建设置方法
2020/05/27 Python
英国现代市场:ARKET
2019/04/10 全球购物
写给老婆的检讨书
2014/02/21 职场文书
法制报告会主持词
2014/04/02 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
学习党章的体会
2014/11/07 职场文书
优秀教师事迹材料
2014/12/15 职场文书
入党函调证明材料
2014/12/24 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
mysql sock 文件解析及作用讲解
2022/07/15 MySQL