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.php
、define( '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
无法将 MySQL Workbench 连接到 RDS 实例