登录  /  注册
php7的配置文件里没有mysql.default_socket吗?
php中文网
发布:2023-03-03 10:26:02
原创
1730人浏览过

[更新]刚刚查文档注意到,PHP7已经不支持mysql扩展了,但是我应该怎么解决只能用127.0.0.1链接,不能使用localhost链接的问题呢?

…………………………………………………………………………………………

为什么会有这个问题呢?
我写了一个PHP脚本来链接数据库,代码如下,当如果mysql的地址是127.0.0.1,则能够能够链接,如果地址换成localhost,则提示`PHP Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php on line 9
`

$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
登录后复制
登录后复制

然后我搜索了一些解决方法,主要是修改php.ini的配置文件里这三个选项的值

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
登录后复制
登录后复制

然后我的问题就出现了:
我的ubuntu上使用的是php7,通过phpinfo查到php.ini的文件,打开之后,没有mysql.default_socket
参数,只有其他两个,然后我又查看版本的php.ini发现是有mysql.default_socket,所以请问PHP7的配置文件里没有mysql.default_socket吗?
所以,我的问题是:
1.脚本中链接数据库出现问题,是不是可以通过这种方法解决?
2.PHP7中的php.ini配置文件是不是没有mysql.default_socket,还是我安装的有问题?
先谢谢大神

回复内容:

[更新]刚刚查文档注意到,PHP7已经不支持mysql扩展了,但是我应该怎么解决只能用127.0.0.1链接,不能使用localhost链接的问题呢?

…………………………………………………………………………………………

为什么会有这个问题呢?
我写了一个PHP脚本来链接数据库,代码如下,当如果mysql的地址是127.0.0.1,则能够能够链接,如果地址换成localhost,则提示`PHP Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php on line 9
`

$mysqli = new mysqli("127.0.0.1", "root", "root", "wordpress");
if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database. Please try again later.';
    echo "\n";
    exit;
}else{
    echo "Connect! \n";
}


$sql = "SELECT * FROM wp_amz_key;";
$result = $mysqli->query($sql);

/* close connection */
$mysqli->close();
登录后复制
登录后复制

然后我搜索了一些解决方法,主要是修改php.ini的配置文件里这三个选项的值

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
登录后复制
登录后复制

然后我的问题就出现了:
我的ubuntu上使用的是php7,通过phpinfo查到php.ini的文件,打开之后,没有mysql.default_socket
参数,只有其他两个,然后我又查看版本的php.ini发现是有mysql.default_socket,所以请问PHP7的配置文件里没有mysql.default_socket吗?
所以,我的问题是:
1.脚本中链接数据库出现问题,是不是可以通过这种方法解决?
2.PHP7中的php.ini配置文件是不是没有mysql.default_socket,还是我安装的有问题?
先谢谢大神

没有 mysql.default_socket
但是有 mysqli.default_socketpdo_mysql.default_socket
因为有mysqli所以PHP7不再支持老旧的mysql扩展.

不过我们通常是通过IP和端口连接MySQL,这种情况下并不需要指定什么default_socket.
直接 $db = new mysqli('127.0.0.1','root','pass','mysql',3306);不就行了.
就算你要通过socket连接MySQL,同样也可以在连接时指定:
$db = new mysqli(null,'root','pass','mysql',null,'/path/to/mysqld.sock');
所以并不需要纠结任何事情.

都在本地的话,用socket和用ip地址并没有什么区别。

1、检查mysql配置文件my.conf中是否有一行bind-address = 127.0.0.1,如果有的话加#注释或者删掉重启mysql

2、查看mysql的账号允许链接的主机是否限制为127.0.0.1了
SELECT User, Host FROM mysql.user;

相关标签:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
  • 蓝色极简风格律师事务所网站模板
  • 汉堡披萨快餐美食网站模板
  • 创意数字服务机构HTML5模板
网站特效
网站源码
网站素材
前端模板
关于我们免责申明意见反馈讲师合作广告合作技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023//m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学