MySQL 데이터베이스 연결 IIS10을 설정하는 동안 WordPress 오류 발생
로컬 Windows 10 머신에 WordPress with MySQL을 설정하려고 합니다.다음 오류가 나타납니다.
데이터베이스 연결 확립 오류: 이는 wp-config.php 파일의 사용자 이름과 비밀번호 정보가 잘못되었거나 localhost:3307의 데이터베이스 서버에 접속할 수 없음을 의미합니다.이는 호스트의 데이터베이스 서버가 다운되었음을 의미할 수 있습니다.
이미 확인했습니다. wordpress에서 데이터베이스 연결을 설정하는 중 오류가 발생했습니다.
- 올바른 사용자 이름과 비밀번호를 알고 계십니까?
네, 를 사용하여 SQL Server Workbench에 로그인할 수 있습니다.root
credentials가 동작하고 있습니다. - 올바른 호스트 이름을 입력하셨습니까?
그게 바로 내가 아래에서 시도하고 있는 것이다. - 데이터베이스 서버가 실행 중입니까?
예, MySQL 워크벤치에 체크인하여 실행 중입니다.
이 쿼리를 실행했습니다.select @@hostname
그 결과 다음과 같이 됩니다.DESKTOP-CFT2ESY
wp-config.php에 추가하려고 했습니다(모든 것을 동시에 추가할 수는 없습니다).
define('DB_HOST', 'localhost:3307');
define('DB_HOST', 'localhost:8899');
define('DB_HOST', 'localhost');
define('DB_HOST', 'DESKTOP-CFT2ESY');
define('DB_HOST', '127.0.0.1');
어느 것도 동작하지 않고, 상기의 에러 메세지의 호스트명 스트링만 변경됩니다.
그 후 다음과 같이 덧붙였습니다.
define('WP_ALLOW_REPAIR', true);
define('DB_CHARSET', 'utf8');
그러나 이 경우에도 오류 메시지는 변경되지 않습니다.
업데이트 1
나는 달렸다SHOW GLOBAL VARIABLES LIKE 'PORT';
서버는 포트 3306으로 동작합니다.WorkBench에서 데이터베이스가 실행 중임을 알 수 있습니다.사용자 권한도 모두 추가했습니다.root
내 데이터베이스 스키마에서.사용자의Limit to hosts matching
로 설정되어 있다.localhost
.
업데이트 2
그리고 여기서 찾은 이 PHP 코드를 실행했습니다(루트 사용자의 비밀번호를 루트 사용자의 비밀번호로 변경했을 뿐입니다).
<?php
$host="localhost";
$root="root";
$root_password="rootpass";
$user='newuser';
$pass='newpass';
$db="newdb";
try {
$dbh = new PDO("mysql:host=$host", $root, $root_password);
$dbh->exec("CREATE DATABASE `$db`;
CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass';
GRANT ALL ON `$db`.* TO '$user'@'localhost';
FLUSH PRIVILEGES;")
or die(print_r($dbh->errorInfo(), true));
} catch (PDOException $e) {
die("DB ERROR: ". $e->getMessage());
}
?>
이 때문에, 에러가 발생합니다.
DB 오류: SQLSTATE[HY000] [2054]서버가 클라이언트에 알 수 없는 문자 집합을 보냈습니다.개발자에게 보고해 주세요.
업데이트 3
그런 다음 쿼리를 실행했습니다.SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "myDB";
이 값은 반환됩니다utf8
에 정의되어 있는 것과 같은 문자 세트입니다.wp-config.php
.
업데이트 4
확인했습니다.나는 방금 한 잔 게mysqlrouter.conf.sample
내 안에서C:\Program Files\MySQL\MySQL Server 8.0\etc
폴더를 추가했습니다.my.cnf
파일링 대상:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
MySQL Windows 서비스를 재시작했지만 오류는 그대로입니다.
또 뭐가 있을까요?
@treyBake의 코멘트대로 여기를 봐주세요.
기본적으로 MySQL 8은 기본 문자 집합을 utfmb4로 변경했으며 일부 클라이언트에서 오류가 발생했습니다.MySQL Server 5.6으로 다운그레이드했더니 문제가 해결되었습니다.
여기서 잠재적인 해결책을 찾아보세요.
PDO::_construct(): 서버가 클라이언트에 알 수 없는 문자 집합(255)을 보냈습니다.개발자에게 보고해 주세요.
기본적으로 DB와 스크립트가 모두 동일한 문자 집합(가능하면 utf-8)을 사용하는지 확인해야 합니다.
업데이트: 다음 항목도 참조하십시오.http://php.net/manual/en/mysqli.set-charset.php
언급URL : https://stackoverflow.com/questions/53979429/wordpress-error-establishing-a-mysql-database-connection-iis10
'programing' 카테고리의 다른 글
Woocommerce : 모든 제품 업데이트 기능 (0) | 2023.03.23 |
---|---|
서블릿과 웹 서비스의 차이점 (0) | 2023.03.23 |
레일: active_model_serializer와의 깊이 중첩된 연관성을 직렬화하는 중 (0) | 2023.03.23 |
Mongoose에서 Enum을 생성하여 사용하는 방법 (0) | 2023.03.23 |
Select2 Ajax 메서드가 선택되지 않음 (0) | 2023.03.23 |