programing

경고: mysqli_real_connect(): (HY000/2002)1452행의 /private/tmp/wordpress/wp-includes/wp-db.php에 이러한 파일 또는 디렉토리가 없습니다.

css3 2023. 3. 11. 09:19

경고: mysqli_real_connect(): (HY000/2002)1452행의 /private/tmp/wordpress/wp-includes/wp-db.php에 이러한 파일 또는 디렉토리가 없습니다.

WordPress 플러그인을 해제하기 위해 PHPunit을 실행하려고 하는데 제목에 오류가 계속 나타납니다.

WP-CLI를 사용하여 unittest를 설정했는데 WP-CLI도 실행하려고 하면 비슷한 오류가 발생합니다.

데이터베이스를 실행하기 위해 MAMP를 사용합니다.

WP-CLI 및 PHPnit을 ~/.bash-profile에서 별칭을 가진 phars로 설정하고 OS X에서 제공하는 기본 "php"로 실행했습니다. 이를 변경하고 MAMP 고정 WP-CLI에서 제공하는 최신 버전의 PHP를 사용하여 WP-CLI 및 PHPnit을 실행하고 데이터베이스에 연결 중이었습니다.

wp-config.php 파일을 편집하여 호스트를 ":/path/to/mamp/mysql.socket", "localhost:/path/to/mamp/mysql.socket" 및 "127.0.0.1"로 설정해 봤지만 아무 것도 도움이 되지 않았습니다.

난 완전히 갇혀서 다음에 뭘 해야 할지 모르겠어.

방금 이 오류가 발생했습니다. 스키마가 존재하는지 확인하셨나요?wp-config.php명기되어 있습니까?

저 같은 경우에는 만드는 것을 완전히 잊어버렸기 때문에 수정은 매우 간단합니다.CREATE DATABASE wordpress.

또, 이 에러가 발생한 적이 있습니다.wp-config.php데이터베이스 호스트가 잘못되었습니다(스와프 시도).localhost그리고.127.0.0.1).

먼저 MySql이 실제로 실행 중인지 확인합니다.프로세스가 시작되지 않으면 소켓 파일이 생성되지 않습니다.

netstat -tulpn | grep mysql

또는

ps -e | grep mysql

MySql이 실행 중인 경우 다음 위치에서 데이터베이스 호스트 변경localhost로.127.0.0.1wp-config로 설정합니다.php는 동작하지만 회피책일 뿐입니다.

지정한 경우localhost,그mysqli_real_connect()함수는 찾을 수 없는 Unix 소켓을 통해 데이터베이스에 연결을 시도합니다(따라서 "no scheat file" 오류).지정한 경우127.0.0.1는, 동작하는 디폴트의 TCP 포토(통상은 3306)를 사용해 데이타베이스에의 접속을 시도합니다.

그렇다고 해서 PHP가 MySql 소켓을 찾을 수 없는 문제는 해결되지 않습니다.에서 다음 옵션을 설정해야 합니다.php.ini소켓의 위치는 OS에 따라 다르지만 일반적으로 를 실행하여 찾을 수 있습니다.locate mysql.sockCentOS 6.8에서 사용할 수 있는 설정은 다음과 같습니다.

php.ini

pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock

기타 시스템은 일반적으로 사용/tmp/mysqld.sockMySql 컨피규레이션파일을 체크하면, 설정이 끝난 장소를 확인할 수 있습니다.my.cfg.

올바른 소켓 위치를 가리키도록 PHP를 구성한 후 Apache/nginx를 재시작하여 새 설정을 선택합니다.

, 그럼 에는 '어울릴 수 .localhost의도한 대로.

phpMyAdmin으로 이동하여 데이터베이스를 클릭한 후 에서 서비스를 실행하고 있는IP를 복사하여 wp-config.php 파일로 바꿉니다.

/** MySQL 호스트명 */ define ('DB_HOST', 'localhost') ;

/** MySQL 호스트명 */ define ('DB_HOST', 'ip_where_is_running_mysqlserver');

Localhost를 MySQL Server를 실행하는 IP로 바꿉니다.

그것은 나를 혼란스럽게 만들었지만 결국 나는 해결했다.

MySQL 포트는 3308이기 때문에 127.0.0.1을 localhost:3308로 변경합니다.

$cfg['Servers'][$i]['host'].

됐다!

게다가, 나는

$cfg['Servers'][$i]['controluser'] = '';

$cfg['Servers'][$i]['controlpass'] = '';

그리고...

$cfg['Servers'][$i]['auth_type'] = 'cookie';

하지만 가장 중요한 것은 포트 변경이라고 생각합니다.

wp-cli 것이 더이고, 을 편집하고, 것입니다.wp-configfilename을 클릭합니다.

MAC Sierra와 MAMP PRO를 위해 이 작업을 수행했습니다.

후.netstat

netstat -a | grep mysql

.var더입니니다다

cd /var 
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock

WordPress가 설치된 폴더의 wp 플러그인 목록이 작동합니다.

/path/to/wordpress/installation $ wp plugin list
-------------------------------------------------+----------+-----------+---------+
| name                                            | status   | update    | version |
+-------------------------------------------------+----------+-----------+---------+
| advanced-custom-fields                          | active   | none      | 5.9.0   |
| akismet                                         | active   | none      | 4.1.6   |
| bbp-voting                                      | inactive | available | 1.3.5   |
| breadcrumb-navxt                                | active   | none      | 6.5.0   |
| contact-form-7                                  | active   | none      | 5.2.2   |
| flamingo                                        | active   | none      | 2.2     |
| keydesign-addon                                 | active   | none      | 3.2     |
| post-my-contact-form-7                          | active   | none      | 4.1.8   |

/wp-includes/wp-db.php(WordPress v 4.5의 1489줄)의 보고 행에는 코드가 다음과 같이 표시됩니다.

mysqli_real_connect( $this->duh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );

「」를 하면, 됩니다.@는 다음과 같습니다따라서 코드는 다음과 같습니다.

@mysqli_real_connect( $this->duh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );

된 「」를 합니다.@변경된 파일을 저장하고 업로드하여 경고가 사라지도록 합니다.

언급URL : https://stackoverflow.com/questions/32809896/warning-mysqli-real-connect-hy000-2002-no-such-file-or-directory-in-priv