资讯专栏INFORMATION COLUMN

无法为 php_mysqli 指定 mysqli.default_socket 参数

Faremax / 2406人阅读

摘要:先给出结论此尚未找出解决方案,但我已使用了曲线救国的方案来救命背景用了阿里云市场中提供的镜像用为的话,连接时就会走的方式而非的方式。而修改的话,依然报上述的错,也就是设置无效。备注用的话,记得在的配置文件中把给注释掉,否则会报以下这错

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.sock
mysqli.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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21273.html

相关文章

  • mysql.sock 文件解析

    摘要:连接连接的操作实际上是启动一个连接进程和数据库实例进行通信,本质上属于进程间通信,而进程通信的方式有管道命名管道命名字套接字套接字。同时代表该文件内容为空。 在观察MySQL本地连接的时候,发现对mysql.sock是个啥我不明白,于是我提出了一个问题:mysql.sock到底存了什么信息? 根据多方查资料和自我思考,我有了自己的一些认识和结论,但结论并不一定正确,欢迎大家指教。 连接...

    cppowboy 评论0 收藏0
  • Centos-7-下安装LNMP官方最新版(yum安装nginx和mysql,php7源码安装)

    摘要:现在立即用这个密码登录并且修改密码版本对密码的安全性要求很严格,必须至少包含个大写字母个小写字母个数字和个特殊字符,长度不得小于个字符其中就是新密码。一般都是使用用户其中中要留意这个值这里使用端口,这个选项在配置网站时要用到的。 软件版本 Nginx版本: nginx 1.12.0Mysql版本:mysql 5.7.18PHP版本:php 7.1.4 实现环境 Centos版本:Cen...

    LiuRhoRamen 评论0 收藏0

发表评论

0条评论

Faremax

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<