最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-09 21:02:40
文档

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

Macos解决无法使用localhost连接mysql问题:今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工具也能正常访问。当把loc
推荐度:
导读Macos解决无法使用localhost连接mysql问题:今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工具也能正常访问。当把loc


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

在网上搜索了一下它们的区别,有人已经说的很明白了,具体可以参看://www.gxlcms.com/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服务。

您可能感兴趣的文章:

  • MySQL数据库远程连接开启方法
  • MySQL远程连接丢失问题解决方法(Lost connection to MySQL server)
  • 配置mysql允许远程连接的方法
  • MySQL远程连接不上的解决方法
  • PHP中使用localhost连接Mysql不成功的解决方法
  • 解决MySQL无法远程连接的方法
  • MySQL出现SQL Error (2013)连接错误的解决方法
  • KB967723造成MySQL频繁无法连接
  • mysql服务启动却连接不上的解决方法
  • mysql server 5.5连接不上的解决方法
  • 文档

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

    Macos解决无法使用localhost连接mysql问题:今天在mac上搭建好了php的环境,把先前在window、linux下运行良好的程序放在mac上,居然出现访问不了数据库,数据库连接的host用的是localhost,可以确认数据库配置是正确的,因为在java中使用localhost访问正常,另外通过命令行工具也能正常访问。当把loc
    推荐度:
    标签: 解决 问题 数据库
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top