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之PHP语法学习笔记1
Dec 17 PHP
PHP memcache扩展的三种安装方法
Apr 26 PHP
php cout<<的一点看法
Jan 24 PHP
劣质的PHP代码简化
Feb 08 PHP
PHP中数组合并的两种方法及区别介绍
Sep 14 PHP
PHP运行模式的深入理解
Jun 03 PHP
php多功能图片处理类分享(php图片缩放类)
Mar 14 PHP
如何实现php图片等比例缩放
Jul 28 PHP
php pthreads多线程的安装与使用
Jan 19 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP7 新增常量
Mar 09 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
原生js实现半透明遮罩层效果具体代码
2013/06/06 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
JavaScript运算符小结
2015/06/03 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
Python GAE、Django导出Excel的方法
2008/11/24 Python
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Python实现针对中文排序的方法
2017/05/09 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
Java的五个基础面试题
2016/02/26 面试题
会计职业生涯规划范文
2014/01/04 职场文书
学雷锋的心得体会
2014/09/04 职场文书
预备党员期盼十八届四中全会召开思想汇报
2014/10/17 职场文书
小学见习报告
2014/10/31 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
idea以任意顺序debug多线程程序的具体用法
2021/08/30 Java/Android