【问题标题】:Wordpress cannot connect to mysql serverWordpress 无法连接到 mysql 服务器
【发布时间】: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 时。有用。虽然相当有线。

标签: mysql wordpress


【解决方案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 时。有用。虽然相当有线。

                【讨论】:

                  猜你喜欢
                  • 2021-02-03
                  • 2015-05-10
                  • 2012-11-03
                  • 1970-01-01
                  • 2015-01-21
                  • 2012-11-12
                  • 2014-07-15
                  相关资源
                  最近更新 更多