相关疑难解决方法(0)

mysqli :: mysqli():( HY000/2002):无法通过套接字'MySQL'连接到本地MySQL服务器(2)

当我尝试使用php mysqli类连接到mysql数据库时,我收到此错误.使用以下代码:

$db = new MySQLi("localhost","kamil","*****");
if (mysqli_connect_errno())
{
    echo "An error occured. Please try again later.";
    exit();
}
Run Code Online (Sandbox Code Playgroud)

密码为*表示安全性.

我创建了kamil具有外部IP地址和localhost所有权限的用户.当我运行:select user,host from mysql.user它正确显示这两个用户.

我做了一些研究并使用了这个基准:https://stackoverflow.com/a/2183134/1839439来查看它连接的内容.事实证明它是唯一能够连接到127.0.0.1127.0.0.1:3306其为localhost,但是当我提供localhost它抛出了这个错误.

我的问题是为什么它只允许我使用localhost ip地址而不是名称或外部ip连接到数据库.如果我想在网站上使用mysql或者我可以使用,我是否需要一个不同的主机127.0.0.1

编辑:
hosts文件

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi
Run Code Online (Sandbox Code Playgroud)


该用户的Mysql用户表结果:

| kamil            | 109.255.177.28 |
| kamil            | localhost      |
Run Code Online (Sandbox Code Playgroud)

php mysql mysqli

34
推荐指数
2
解决办法
15万
查看次数

连接DATABASE错误类型:2002:权限被拒绝

我试图用以下脚本连接数据库(cxn-test.php)

<?php
$host = '155.30.136.20';//dummy ip 
$user = 'abc_user';
$pass = 'xxxxxxxxx';
$dbname = 'welcome';
$link = mysqli_connect($host, $user, $pass,$dbname);
if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}else {
    echo "success" . PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

当我在尝试终端时

php cxn-test.php //成功

但是,当我尝试localhost时,我收到以下错误,

curl -s http://localhost/cxn-test.php

Error: Unable to connect to MySQL. Debugging errno: 2002 Debugging error: Permission denied

这是一个奇怪的问题,它不能在localhost上运行,但在命令行上运行良好.

php mysql curl selinux

6
推荐指数
1
解决办法
7255
查看次数

标签 统计

mysql ×2

php ×2

curl ×1

mysqli ×1

selinux ×1