WordPress 错误建立 MySQL 数据库连接 IIS10
WordPress Error establishing a MySQL database connection IIS10
我正在尝试在我的本地 Windows 10 机器上使用 MySQL 设置 WordPress。
我收到此错误:
Error establishing a database connection
This either means that the username and password information in your wp-config.php file is incorrect or we can't contact the database server at localhost:3307. This could mean your host's database server is down.
我已经检查过这里:Error establishing a database connection on wordpress
- 您确定您的用户名和密码正确吗?
是的,我可以使用 root
凭据登录 SQL 服务器 Workbench,这样就可以了
- 您确定输入了正确的主机名吗?
这就是我在下面尝试的
- 您确定数据库服务器是运行吗?
是的,签入了 MySQL workbench 并且它是 运行
我 运行 这个查询 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');
None 这些工作,它只是更改了上面错误消息中的主机名字符串。
然后我补充说:
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 代码 here (我只是将 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());
}
?>
但这会引发错误:
DB ERROR: SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
更新 3
我然后运行查询:SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "myDB";
其中returnsutf8
,所以和我wp-config.php
.[=38=中定义的一样的字符集]
更新 4
我检查了 here。我的 C:\Program Files\MySQL\MySQL Server 8.0\etc
文件夹中只有一个 mysqlrouter.conf.sample
,所以我添加了一个 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 服务,但错误仍然存在。
我还能尝试什么?
在此处查找可能的解决方案:
本质上,您必须确保数据库和脚本使用相同的字符集,最好是 utf-8
如@treyBake 所评论,请参阅 。
基本上 MySQL 8 将默认字符集更改为 utfmb4,现在某些客户端出现错误。我降级到 MySQL Server 5.6,问题消失了。
我正在尝试在我的本地 Windows 10 机器上使用 MySQL 设置 WordPress。 我收到此错误:
Error establishing a database connection This either means that the username and password information in your wp-config.php file is incorrect or we can't contact the database server at localhost:3307. This could mean your host's database server is down.
我已经检查过这里:Error establishing a database connection on wordpress
- 您确定您的用户名和密码正确吗?
是的,我可以使用root
凭据登录 SQL 服务器 Workbench,这样就可以了 - 您确定输入了正确的主机名吗?
这就是我在下面尝试的 - 您确定数据库服务器是运行吗?
是的,签入了 MySQL workbench 并且它是 运行
我 运行 这个查询 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');
None 这些工作,它只是更改了上面错误消息中的主机名字符串。
然后我补充说:
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 代码 here (我只是将 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());
}
?>
但这会引发错误:
DB ERROR: SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
更新 3
我然后运行查询:SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "myDB";
其中returnsutf8
,所以和我wp-config.php
.[=38=中定义的一样的字符集]
更新 4
我检查了 here。我的 C:\Program Files\MySQL\MySQL Server 8.0\etc
文件夹中只有一个 mysqlrouter.conf.sample
,所以我添加了一个 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 服务,但错误仍然存在。
我还能尝试什么?
在此处查找可能的解决方案:
本质上,您必须确保数据库和脚本使用相同的字符集,最好是 utf-8
如@treyBake 所评论,请参阅
基本上 MySQL 8 将默认字符集更改为 utfmb4,现在某些客户端出现错误。我降级到 MySQL Server 5.6,问题消失了。