Wordpress를 mysql 서버에 연결할 수 없습니다.
macbook에서 mysql 서버를 실행했는데, mysql 명령어로 모두 액세스할 수 있습니다.mysql -u root
및 Navicat 어플리케이션.하지만 맥북에서 새로운 워드프레스 앱 설치 페이지를 열었을 때.인스톨중에, 다음의 정보를 입수했습니다.
MySQL 8.x는 실제로 지원되지만 사용자 및 비밀번호를 작성할 때 약간 다른 명령어가 필요합니다.버전 8에서는 패스워드가 SHA256으로 인코딩될 것으로 예상되기 때문입니다.
데이터베이스 사용자를 생성할 때 MySQL 프롬프트에서 다음을 사용합니다.
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
WITH mysql_native_password가 주요 차이점입니다.또한 설정에 따라 localhost 대신 127.0.0.1을 사용할 수도 있습니다.
localhost가 아닌 127.0.0.1을 사용합니다.
플러그인 개발/유닛 테스트를 위해 WordPress를 로컬로 설치하고 MySQL 8.0.11, PHP 7.1.16, WordPress 4.9.7과 같은 최신 버전을 사용하기로 결정했을 때 이 사실을 알게 되었습니다.
Sequel Pro 데스크톱 클라이언트에서 데이터베이스에 연결할 수 있었지만 Word Press가 연결되지 않았습니다.
Wordpress용 MySQL 8.0으로 마이그레이션하는 중 에피소드 1에서 비슷한 문제가 발생했습니다.define('WP_DEBUG', true);
나의 것wp-config.php
:
그 후, 상기의 출력의 선두에 다음과 같은 것이 부가되었습니다.
Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /Users/BrianHenryIE/Sites/wptest/wp-includes/wp-db.php on line 1531
1531 행은 그다지 많은 것을 나타내는 것은 아닙니다.오류가 압축되는 경우가 있습니다.
if ( WP_DEBUG ) {
mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
} else {
@mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
}
또 다른 SO 응답 mysqli_real_connect(): (HY000/2002) 해당 파일 또는 디렉토리가 없으며, 사용하라는 메시지가 표시됨127.0.0.1
대신localhost
내가 내 인생에서 바꾼 건wp-config.php
,define( 'DB_HOST', '127.0.0.1' );
그리고 모든 것이 성공했습니다!
WordPress에서는 지원되지 않을 가능성이 있는 MySQL 버전이 8.0.11에 있는 것으로 나타났습니다(아마도).mysql 버전을 8.0.11에서5.7.16으로 전환했을 때그건 효과가 있다.꽤 잘 연결되긴 했지만.
내 경우 MySQL 8.0.18이 WAMPserver 3.2.0 포트 3308에서 실행되도록 설정되어 있는 것이 문제입니다.
wp-config에서 비표준 포트를 정의합니다.php
/** MySQL hostname */
define( 'DB_HOST', 'localhost:3308' );
MySQL 루트 사용자와 연결하지 마십시오.MySQL에서 다른 사용자를 생성하여 Wordpress에서 연결합니다.
이것을 시험해 보세요.
setsebool -P httpd_can_network_connect=1
이 문제를 해결한 것은 IIS 서버에서 PHP 7.2.x로 업데이트한 후 PHPManager(IIS Manager)의 Wordpress 웹 사이트에 이 버전을 할당하는 것입니다.
이건 나한테 효과가 있었어.
MySQL 8에서 팀은 default_authentication_plugin 구성 변수의 기본값을 이전 값과 변경했습니다.mysql_native_password
로로 합니다.caching_sha2_password
.
, 하는 패스워드 하지 않고 MySQL을 사용하는 됩니다.caching_sha2_password
, 사용되고 클라이언트의 은, 「」를 사용하는 로 하고 mysql_native_password
.
이 문제를 해결하려면 mysql 설정 파일을 편집합니다.Linux 에서는 다음 위치에 있어야 합니다.
/etc/my.cnf
다음 행을 찾아 주석을 해제합니다.
default_authentication_plugin=mysql_native_password
밑에 요.[mysqld]
.
이 변경 후 mysql을 재시작해야 합니다.온센트OS 7 에서는, 다음의 커맨드를 발행할 수 있습니다.
systemctl restart mysqld
이 영구 솔루션은 모든 워드프레스 설치의 mysql 연결 오류를 수정합니다.
도커 mysql 인스턴스의 경우
docker run --name eight-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest --default-authentication-plugin=mysql_native_password
저도 이 문제가 있었습니다.MySQL my my my my my my 。를 이이음음음음음음음음음음음음 changed로 변경.utf8_general_ci
이 잘 요.
언급URL : https://stackoverflow.com/questions/50037975/wordpress-cannot-connect-to-mysql-server
'source' 카테고리의 다른 글
JSON을 Ruby 해시로 변환하는 방법 (0) | 2023.02.18 |
---|---|
RSpec/RoR을 사용하여 AJAX 요구를 테스트하려면 어떻게 해야 합니까? (0) | 2023.02.14 |
워드프레스 플러그인에서 컬을 사용하는 방법은 무엇입니까? (0) | 2023.02.14 |
Lodash Debounce는 비난하지 않는다. (0) | 2023.02.14 |
AngularJS - 컨트롤러 내부에서 상태를 변경하는 방법 (0) | 2023.02.14 |