SQLSTATE[HY000] [2003] '127.0.0.1'(13)에서 MySQL 서버에 연결할 수 없지만 'localhost'는 작동합니다.

SQLSTATE[HY000] [2003] '127.0.0.1'(13)에서 MySQL 서버에 연결할 수 없지만 'localhost'는 작동합니다.

Cent os Apache + php + MySQL from php 127.0.0.1 주소에서 MySQL에 접속하려고 하면 오류가 발생합니다. 한 줄을 변경하면 모든 127.0.0.1것이 localhost문제 없이 잘 작동합니다. 브라우저에서 PHP의 유일한 문제입니다. 콘솔이 실행되는 경우

php -r "var_dump (mysqli_connect ( '127.0.0.1', 'user', 'pass', 'db_name'))"

오류가 없습니다. 게다가 콘솔에 들어가면

mysql -u user -h 127.0.0.1 -p db_name

또는

mysql -u user -h localhost -p db_name

다시 말하지만, 모든 것이 잘 작동합니다. 무엇이 문제일까요?

소프트웨어 버전

  • PHP-5.6.26
  • MySQL-5.5.53
  • 아파치 2.2.15

마침내,

$ host localhost
localhost has address 127.0.0.1

PHP 코드 작동 중:

$dsn = 'mysql:dbname=testdb;host=localhost';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

PHP 코드가 작동하지 않습니다:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';

    try {
        $dbh = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage();
    }

SQLSTATE[HY000] [2003] "127.0.0.1"에서 MySQL 서버에 연결할 수 없습니다(13)

PHP 코드 작동 중:

$link = mysqli_connect("localhost", "my_user", "my_password", "my_db");

PHP 코드가 작동하지 않습니다:

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

해결책:

setsebool httpd_can_network_connect_db on

답변1

~에 따르면StackOverflow에 대한 이 (허용되지 않은) 답변localhost그 이유는 MySQL이 다르게 해석하기 때문입니다 127.0.0.1. 이것은문서로 확인, 첫 단락 "을 참조하세요.localhostUnix 에서는 MySQL 프로그램이 호스트 이름을 처리합니다.".

  • 이는 127.0.0.1명시적인 IPv4 주소이므로 클라이언트는 TCP/IP를 통해 연결을 시도합니다.
  • 이는 localhostlocalhost를 사용하라는 암시적 힌트입니다. MySQL은 가능하면 TCP/IP 대신 로컬 소켓을 통해 이를 구현합니다.

귀하의 localhost연결은 작동하지만 127.0.0.1다른 연결은 작동하지 않으므로 다음 문제 중 하나가 원인일 수 있습니다.

  • 귀하의 데이터베이스 권한은 다음의 연결을 거부합니다.127.0.0.1
  • TCP/IP를 통한 모든 인바운드 데이터베이스 연결 시도를 차단하는 방화벽 규칙이 있습니다.
  • bind루프백 주소에 바인딩되지 않도록 MySQL의 구성 항목을 변경했습니다.

오류 코드 13(허가가 거부되었습니다), 이 중 첫 번째를 먼저 살펴보고 나머지 두 개를 살펴보겠습니다.

관련 정보