Ошибка WordPress при установлении соединения с базой данных MySQL IIS10

Я пытаюсь настроить WordPress с MySQL на моем локальном компьютере с Windows 10.
Я получаю эту ошибку:

Ошибка при установлении соединения с базой данных
Это либо означает, что имя пользователя и пароль в вашем файле wp-config.php неверны, либо мы не можем связаться с сервером базы данных по адресу localhost: 3307. Это может означать, что сервер базы данных вашего хоста не работает.

Я уже проверил здесь: Ошибка при установлении соединения с базой данных на WordPress

  1. Вы уверены, что у вас есть правильное имя пользователя и пароль?
    Да, я могу войти в SQL Server Workbench с помощью root учетные данные, так что работает
  2. Вы уверены, что ввели правильное имя хоста?
    Вот что я пытаюсь ниже
  3. Вы уверены, что сервер базы данных работает?
    Да, проверил в 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, который я нашел Вот (Я просто изменил пароль пользователя root на пароль моего пользователя root):

<?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());
}
?>

Но это вызывает ошибку:

ОШИБКА БД: 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

Я перезапустил службу Windows MySQL, но ошибка остается той же.

Что еще я могу попробовать?

9

Решение

Как прокомментировал @treyBake, пожалуйста, смотрите Вот.

В основном MySQL 8 изменил кодировку по умолчанию на utfmb4, и теперь есть ошибки с некоторыми клиентами. Я опустился до MySQL Server 5.6 и проблема исчезла.

4

Другие решения

Посмотрите здесь для потенциального решения:

PDO :: __ construct (): Сервер отправил кодировку (255), неизвестную клиенту. Пожалуйста, сообщите разработчикам

По сути, вы должны убедиться, что и БД, и скрипт используют одну и ту же кодировку, предпочтительно utf-8

ОБНОВИТЬ:
Смотрите также это:http://php.net/manual/en/mysqli.set-charset.php

1

По вопросам рекламы [email protected]