code

PHP는 오류 13으로 mysql에 연결할 수 없습니다 (하지만 명령 줄은 가능합니다)

codestyles 2020. 12. 14. 08:12
반응형

PHP는 오류 13으로 mysql에 연결할 수 없습니다 (하지만 명령 줄은 가능합니다)


새로 설치된 서버에서 이상한 상황이 발생하여 이번에는 Google이 도와 줄 수없는 것 같습니다. 내 PHP 코드에서 (원격) mysql에 연결할 수 없습니다. 동일한 서버의 명령 줄에서 연결하려고하면 연결이 성공했습니다.

연결할 수 없음 : 'MYSQL.SERVER'에서 MySQL 서버에 연결할 수 없습니다. (13)

다음은 명령 줄에서 코드와 연결 시도입니다.

[u1@bosko httpdocs]$ cat  test.php

<?
$link = mysql_connect('MYSQL.SERVER', 'testusersimon', '123456');
if (!$link) {
    die('Could not connect: ' .  mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

[u1@bosko httpdocs]$ mysql -h MYSQL.SERVER -utestusersimon --password=123456
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 352108
Server version: 5.0.45-community-nt-log MySQL Community Edition (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

mod_php 모드와 FastCGI 모두에서 PHP 스크립트를 실행 해 보았습니다. "/etc/php.d/mysql.ini"가 phpinfo ()와 mysql, mysqli 및 pdo_mysql 섹션에 표시되는지 확인합니다.

그러나 결과는 동일했습니다. 간단한 것을 알고 있지만 할 수 없습니다. 도와주세요 :)

편집 : 문제는 SElinux에있었습니다.

setsebool -P httpd_can_network_connect_db=1

해결책이었습니다.


setsebool -P httpd_can_network_connect=1

HTTP (Apache) 요청 내에서 원격 MySQL 데이터베이스 서버로 mysql_connet () 연결을 허용하고 일반적으로 / etc /에있는 SElinux에서 httpd에서 네트워크 연결을 활성화하도록이 질문을 방문하는 많은 사람들에게 유용한 CLI 명령이 될 것입니다. selinux / config (해커가 httpd를 사용하여 다른 컴퓨터를 공격하는 것을 방지하기 위해 기본적으로 비활성화 됨).


CentOs 6에서는 다음을 사용할 수 있습니다 (없이 -P).

setsebool httpd_can_network_connect=1

원격 mysql 서버 5.6 또는 mariadb 버전 10에 연결할 때 php 버전 5.6을 사용하는 apache 2 / httpd 버전 2.6이있는 Fedora 21에서. php 코드에서 localhost 대신 서버의 FQDN을 지정할 때 로컬 서버에 연결하는 데 문제가있는 것 같습니다. .

이 명령은 현재 세션의 권한 문제를 해결합니다.

setsebool httpd_can_network_connect_db on

후속 재부팅에 대해 영구적으로 수정하려면 다음을 수행해야합니다.

setsebool -P httpd_can_network_connect_db on

Thanks to all on this question for rescuing me from "permission denied" hell. :)

참고URL : https://stackoverflow.com/questions/4078205/php-cant-connect-to-mysql-with-error-13-but-command-line-can

반응형