Wordpress 无法连接到 mysql 服务器

Posted

技术标签:

【中文标题】Wordpress 无法连接到 mysql 服务器【英文标题】:Wordpress cannot connect to mysql server 【发布时间】:2018-10-06 20:34:40 【问题描述】:

我在我的macbook 中运行了一个mysql 服务器,我可以通过mysql 命令mysql -u root 和navicat 应用程序访问。但是,当我在我的 macbook 中打开全新 wordpress 应用程序的安装页面时。在安装过程中,我得到了:

【问题讨论】:

向我们展示配置(但请删除密码)和 MySQL 用户列表。 原来我的 MySQL 版本是 8.0.11,WordPress 可能不支持(我猜)。当我将 mysql 版本从 8.0.11 切换到 5.7.16 时。有用。虽然相当有线。 【参考方案1】:

我也遇到过这个问题——问题出在 MySQL 数据库上。将数据库更改为 utf8_general_ci 并且连接正常

【讨论】:

【参考方案2】:

就我而言,问题是 MySQL 8.0.18 设置为在 WAMPserver 3.2.0 的端口 3308 上运行

在 wp-config.php 中定义非标准端口

/** MySQL hostname */
define( 'DB_HOST', 'localhost:3308' );

【讨论】:

这对我有用!我没想到这会奏效。欢呼!谢谢。【参考方案3】:

实际上支持 MySQL 8.x,但在创建用户和密码时需要稍微不同的命令,因为版本 8 要求密码为 SHA256 编码。

创建数据库用户时,使用 MySQL 提示符,使用以下命令:

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

所以 与 mysql_native_password 是主要区别。祝你好运!

【讨论】:

我已经检查过了,我可以确认它非常漂亮。 此查询工作正常,但不能通过复制粘贴。我想某处有一个特殊字符。请输入。 @BreakingBenjamin 谢谢,确实是这样。我已经更正了。 这并将主机设置为127.0.0.1 而不是localhost 为我解决了这个问题。【参考方案4】:

不要与 MySQL root 用户连接。在 MySQL 中创建另一个用户以在 Wordpress 中连接。

【讨论】:

【参考方案5】:

对于 docker mysql 实例

docker run --name eight-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:latest --default-authentication-plugin=mysql_native_password

【讨论】:

【参考方案6】:

在 MySQL 8 中,团队将 default_authentication_plugin 配置变量的默认值从之前的 mysql_native_password 更改为 caching_sha2_password

这意味着当客户端连接到 MySQL 而不指定它使用哪种密码加密方法时,MySQL 假定它使用caching_sha2_password。但是目前使用的大多数客户端都假设使用mysql_native_password

要解决此问题,请编辑您的 mysql 配置文件。在 linux 上,它应该位于:

/etc/my.cnf

查找并取消注释以下行:

default_authentication_plugin=mysql_native_password

如果找不到,只需将其添加到[mysqld] 下即可。

您必须在此更改后重新启动 mysql。在 CentOS 7 上,您可以发出以下命令:

systemctl restart mysqld

此永久解决方案将修复所有 wordpress 安装的 mysql 连接错误。

【讨论】:

【参考方案7】:

解决我的问题的方法是在我的 IIS 服务器上更新到 PHP 7.2.x,然后将此版本分配给 PHPManager 中的 Wordpress 网站(在 IIS 管理器中)。

这对我有用。

【讨论】:

【参考方案8】:

试试这个:

setsebool -P httpd_can_network_connect=1

【讨论】:

【参考方案9】:

使用 127.0.0.1 而不是 localhost

我在本地安装 WordPress 以进行插件开发/单元测试并决定使用最新版本时遇到了这个问题!即 MySQL 8.0.11、PHP 7.1.16、WordPress 4.9.7。

我可以使用Sequel Pro 桌面客户端连接到数据库,但 WordPress 无法连接。

Migrating to MySQL 8.0 for Wordpress – episode 1 遇到了类似的问题,提醒我将define('WP_DEBUG', true); 添加到我的wp-config.php

然后,上面的输出前面加上:

Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /Users/BrianHenryIE/Sites/wptest/wp-includes/wp-db.php on line 1531

第 1531 行并没有真正说明什么,只是有时会掩盖错误:

if ( WP_DEBUG ) 
    mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
 else 
    @mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );

另一个 SO 答案 mysqli_real_connect(): (HY000/2002): No such file or directory 告诉我使用 127.0.0.1 而不是 localhost,我在 wp-config.phpdefine( 'DB_HOST', '127.0.0.1' ); 中进行了更改,一切正常!

【讨论】:

【参考方案10】:

原来我的 MySQL 版本是 8.0.11,WordPress 可能不支持(我猜)。当我将 mysql 版本从 8.0.11 切换到 5.7.16 时。有用。虽然相当有线。

【讨论】:

以上是关于Wordpress 无法连接到 mysql 服务器的主要内容,如果未能解决你的问题,请参考以下文章

无法将R连接到AWS中的Bitnami服务器中托管的mysql

无法将 Wordpress 连接到 MySQL 数据库

无法将 MySQL Workbench 连接到 RDS 实例

无法将MySQL Workbench连接到RDS实例

WordPress更新时提示无法连接到FTP服务器的解决方案

主机 'localhost' 不允许连接到这个 MySQL 服务器