>  기사  >  백엔드 개발  >  php7의 구성 파일에 mysql.default_socket이 없나요?

php7의 구성 파일에 mysql.default_socket이 없나요?

WBOY
WBOY원래의
2016-12-05 13:44:232201검색

[업데이트] 방금 문서를 확인해보니 PHP7이 더 이상 mysql 확장을 지원하지 않는 것으로 나타났는데, 127.0.0.1 링크만 사용할 수 있고 localhost 링크는 사용할 수 없는 문제는 어떻게 해결해야 하나요?

..........................................................................................................

왜 이런 문제가 발생하나요?
데이터베이스에 접속하기 위한 PHP 스크립트를 작성했습니다. mysql의 주소가 127.0.0.1이면 접속이 가능합니다. PHP 경고: mysqli::mysqli (): (HY000/2002): 9행의 /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php에 해당 파일이나 디렉토리가 없습니다
`

<code>$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();
</code>

그런 다음 주로 php.ini 구성 파일에서 이 세 가지 옵션의 값을 수정하여 몇 가지 솔루션을 검색했습니다.

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>

그런 다음 문제가 발생합니다.
우분투에서 php7을 사용합니다. phpinfo를 통해 php.ini 파일을 확인한 후 mysql.default_socket
매개변수가 없습니다. 나머지 2개만 있는데 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이면 접속이 가능합니다. PHP 경고: mysqli::mysqli (): (HY000/2002): 9행의 /home/wwwroot/default/cenyu/Goitems/Goitems/connect_mysql.php에 해당 파일이나 디렉토리가 없습니다
`

<code>$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();
</code>

그런 다음 주로 php.ini 구성 파일에서 이 세 가지 옵션의 값을 수정하여 몇 가지 솔루션을 검색했습니다.

<code>pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket=/tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock</code>

그런 다음 문제가 발생합니다.
우분투에서 php7을 사용합니다. phpinfo를 통해 php.ini 파일을 확인한 후 mysql.default_socket
매개변수가 없습니다. 나머지 2개만 있는데 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); 아니요
소켓이 있는 경우에도 연결할 수 있습니다.
$db = new mysqli(null,'root','pass','mysql',null,'/path/to/mysqld.sock');
따라서 아무것도 걱정할 필요가 없습니다.

모두 로컬이면 소켓을 사용하든 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으로 문의하세요.