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服务器页面间跳转实现方法
Aug 02 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
php 伪静态之IIS篇
Jun 02 PHP
一组PHP加密解密函数分享
Jun 05 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
PHP往XML中添加节点的方法
Mar 12 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 PHP
PHP汉字转换拼音的函数代码
Dec 30 PHP
PHP中的session安全吗?
Jan 22 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 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-amq扩展简明教程
2016/06/25 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
php提高脚本性能的4个技巧
2020/08/18 PHP
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
jQuery中inArray方法注意事项分析
2016/01/25 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
vue  elementUI 表单嵌套验证的实例代码
2019/11/06 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
[01:06:30]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第二场 1月9日
2021/03/11 DOTA
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python基于回溯法子集树模板解决m着色问题示例
2017/09/07 Python
对numpy中数组元素的统一赋值实例
2018/04/04 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
pandas中ix的使用详细讲解
2020/03/09 Python
python 利用toapi库自动生成api
2020/10/19 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
数据管理员的自我评价分享
2013/11/15 职场文书
招商业务员岗位职责
2013/12/16 职场文书
优秀大学生自荐信
2014/06/09 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript