我正在尝试在本地的Windows10机器上安装带有MySQL的Wordpress。
我得到这个错误:
建立数据库连接时出错
这意味着wp-config.php文件中的用户名和密码信息不正确,或者我们无法联系localhost:3307上的数据库服务器。这可能意味着主机的数据库服务器已关闭。
我已经查过了:
Error establishing a database connection on wordpress
-
你确定你有正确的用户名和密码吗?
是的,我可以使用
root
凭证,所以这是有效的
-
您确定键入了正确的主机名吗?
这就是我在下面要做的
-
您确定数据库服务器正在运行吗?
是的,签入了MySQLWorkbench,它正在运行
我查过这个问题
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端口上运行。在工作台中,我看到我的数据库正在运行。
我还为用户添加了所有特权
根
在我的数据库架构上。我的用户
Limit to hosts matching
设置为
localhost
.
更新2
然后我运行这个PHP代码
here
(我刚将根用户的密码更改为根用户的密码):
<?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
我检查过了
here
. 我刚刚有一个
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
我重新启动了MySQLWindows服务,但错误仍然存在。
我还可以试试什么?