当前位置:  数据库>mysql

Mac os 解决无法使用localhost连接mysql问题

    来源: 互联网  发布时间:2014-10-14

    本文导语:  今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工...

今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工具也能正常访问。当把localhost换成127.0.0.1或者本机的IP时,居然正常了。以前一直认为localhost与127.0.0.1是一回事,现在事实证明它们其中还是有区别的。

在网上搜索了一下它们的区别,有人已经说的很明白了,具体可以参看:http://www./article/50422.htm。它们的主要区别是localhost是通过socket方式来连接,而127.0.0.1则是走的TCP协议。

上面提到区别就是导致mac下无法连接数据库的原因。那为什么socket方式无法连接呢?由于mac os lion上已经自带了apache和php,我的环境使用就使用默认的,mysql服务是在官网下载dmg安装最近版本,php的配置文件(/ect/php.ini)中设置有三个地方(mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket)设置了mysql socket文件存放的位置,其默认值为/var/mysql/mysql.sock。查看mysql服务使用的socket文件有两种方式
方法1:

代码如下:

echo "show variables" | mysql | grep "socket"

方法二:

代码如下:

echo "status" | mysql | grep "socket"

注意:如果mysql设置了密码,使用-u,-p来指定用户名和密码
这里看到mysql的socket文件存放位置为/tmp/mysql.sock。

看到这儿应该知道问题所在了吧,使用localhost连接失败的原因为在socket的方式下,php默认配置的mysql服务的socket文件不存在,所以导致连接失败,如果把连接失败的错误信息dump出来,你应该会看到错误信息中包含了“No such file or directory”。

知道原因就容易修改了,只需要把php配置文件中mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket这三项值修改为mysql服务配置对应值即可,修改好后需要重启apache服务。当然也可以修改mysql配置文件中的socket信息,使其保持一致即可,修改好后重启mysql服务。


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.crypto类mac的类成员方法: mac定义及介绍
  • Mac的搜索框 qsb-mac
  • java命名空间javax.crypto类mac的类成员方法: getmaclength定义及介绍
  • 请问怎样编程获得本机的MAC地址?还有能不能设置本机MAC地址?
  • java命名空间javax.crypto类mac的类成员方法: getprovider定义及介绍
  • ifconfig -a显示的mac地址全是00,而在windows下能得到正确的MAC。什么原因?
  • java命名空间javax.crypto类mac的类成员方法: reset定义及介绍
  • php获取服务器端mac和客户端mac的地址支持WIN/LINUX
  • java命名空间javax.crypto类mac的类成员方法: getinstance定义及介绍
  • linux tc怎么对 目的MAC ,源MAC,目的IP, 源 IP,目的 port ,源 port配置带宽限制规则?谢谢
  • java命名空间javax.crypto类mac的类成员方法: dofinal定义及介绍
  • 如何更改HP9000小型机的mac地址
  • java命名空间javax.crypto类mac的类成员方法: init定义及介绍
  • 在一台SUN上用ifconfig看到mac地址是0,不太可能吧
  • java命名空间javax.crypto类mac的类成员方法: update定义及介绍
  • 改完mac地址仍然上不了网
  • java命名空间javax.crypto类mac的类成员方法: clone定义及介绍
  • 怎样修改linux下网卡的MAC地址?
  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • js mac地址 正则表达式
  • Mac's CMS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3