博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无法为 php_mysqli 指定 mysqli.default_socket 参数
阅读量:6470 次
发布时间:2019-06-23

本文共 950 字,大约阅读时间需要 3 分钟。

mysqli_connect(): (HY000/2002): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

先给出结论

此bug尚未找出解决方案,但我已使用了曲线救国的方案来救命


背景

  • 用了阿里云市场中提供的镜像;

  • localhosthost的话,php连接mysql时就会走socket的方式而非TCP/IP的方式。

  • 镜像中提供的可视化运维系统(PHP),似乎指定了mysql socket的路径为:/tmp/mysql.sock;因此,若我改 mysql的配置socket的话,则该可视化运维系统不可用;

  • 该可视化运维系统使用了zend的工具进行加密,无法修改;


调试过程

因此只能改自己PHP的配置mysqli.default_socket

备注:经测试,用php_mysql扩展的话,mysql.default_socket修改成功,并能成功连接。

而修改mysqli.default_socket的话,依然报上述的错,也就是设置无效。

利用php_info查看了一下mysqli的配置,结果如下:

MYSQLI_SOCKET    /tmp/mysql.sockmysqli.default_socket    no value

这里可以看出俩问题:

  • 似乎设置好了MYSQLI_SOCKET,但为何未能设置成功mysqli.default_socket

  • google了一下,别人都是说MYSQLI_SOCKET会覆盖mysqli.default_socket,因此需要处理MYSQLI_SOCKET不正确的问题;那在我这,为何MYSQLI_SOCKET没有覆盖mysqli.default_socket


最终结果

搞不定此socket的配置,只好换回用127.0.0.1来走TCP/IP

备注:用127.0.0.1的话,记得在mysql的配置文件my.cnf中把skip-name-resolve给注释掉,否则会报以下这错:

Host '127.0.0.1' is not allowed to connect to this MySQL server

转载地址:http://xujko.baihongyu.com/

你可能感兴趣的文章
ZooKeeper程序员指南(转)
查看>>
Unity3D游戏开发 地形系统(四)
查看>>
第五周编程总结
查看>>
JSON介绍
查看>>
GPG error: the public key is not available
查看>>
Day3-体系结构+查询+导入/出
查看>>
oralce CASE WHEN 用法
查看>>
/dev/null简介
查看>>
ssh免密码登陆
查看>>
大数据开发实战:维度建模1-相关概念
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
值类型和引用类型
查看>>
查看外键属性
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
maven 常用插件
查看>>
朴素贝叶斯方法在乳腺肿块检测中的应用
查看>>
算法 (二分查找算法)
查看>>