Flo*_*Flo 9 php mysql wordpress iis-10 mysql-8.0
我正在尝试在我的本地Windows 10机器上使用MySQL设置WordPress.我收到这个错误:
建立数据库连接时出错这可能意味着wp-config.php文件中的用户名和密码信息不正确,或者我们无法联系localhost:3307上的数据库服务器.这可能意味着主机的数据库服务器已关闭.
我已经在这里检查:在wordpress上建立数据库连接时出错
root凭据登录到SQL Server 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');
这些都不起作用,只是更改了上面错误消息中的主机名字符串.
然后我补充说:
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());
}
?>
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
DB错误:SQLSTATE [HY000] [2054]服务器向客户端发送未知的charset.请向开发人员报告
更新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
Run Code Online (Sandbox Code Playgroud)
我重新启动了MySQL Windows服务,但错误仍然相同.
我还能尝试什么?
| 归档时间: |
|
| 查看次数: |
716 次 |
| 最近记录: |