加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL数据库Mac os 解决无法使用localhost连接mysql问题

发布时间:2020-12-12 00:53:17 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL数据库Mac os 解决无法使用localhost连接mysql问题》要点: 本文介绍了MYSQL数据库Mac os 解决无法使用localhost连接mysql问题,希望对您有用。如果有疑问,可以联系我们。 MYSQL必读 今天在mac上搭建好了php的环境,把先前在window、linux下运行良好

《MYSQL数据库Mac os 解决无法使用localhost连接mysql问题》要点:
本文介绍了MYSQL数据库Mac os 解决无法使用localhost连接mysql问题,希望对您有用。如果有疑问,可以联系我们。

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

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

MYSQL必读上面提到区别就是导致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"

MYSQL必读方法二:

代码如下:
echo "status" | mysql | grep "socket"

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读