[업데이트] 방금 문서를 확인해보니 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_socket
과 pdo_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;