【问题标题】:How to change WP mysql user/pass from localhost to server?如何将 WP mysql 用户/从 localhost 更改为服务器?
【发布时间】:2018-12-27 01:25:46
【问题描述】:

我刚刚在我的 localhost 机器上创建了 WP 站点,我即将将它上传到生产服务器。两种环境都运行在具有相同库和 php 版本的相同操作系统上,但是我为本地 mysql 安装设置的密码与生产服务器不同。因此,我正在考虑上传整个 WP 文件,一旦进入产品,我可以更改 wp-config.php 并更改数据库,但如果我必须再次将代码拉到本地或迁移到,从长远来看,这似乎无法管理另一台服务器...

所以,我的问题是这是怎么做到的?

【问题讨论】:

  • 你是说要把开发服务器的所有sql表都上传到生产服务器吗?除了用户表,开发服务器和生产服务器有什么区别?

标签: php mysql wordpress


【解决方案1】:

您可以直接从数据库更改您的用户/密码。以下是步骤,

  • 打开数据库中的wp_users表。
  • 选择您要编辑的用户并点击编辑链接。
  • MD5 更新密码,用您的电子邮件地址更新 user_email。
  • 现在尝试使用更新的凭据登录。

希望对你有帮助。

【讨论】:

  • 这意味着 prod/local mysql 数据库将具有相同的用户,通过.. 但在我的示例中它们没有
【解决方案2】:

您可以通过在functions.php中添加此代码来更改特定用户的密码

wp_set_password( $password, $user_id ) ;

source

注意:一旦您重置为当前密码,请删除上述代码,否则当用户访问您的网站时,将执行此代码。

您可以从数据库中更改用户名

【讨论】:

  • 他要求更改 mysql 密码而不是 wordpress 用户的密码。
【解决方案3】:

使用插件All-in-One WP Migration

  • 在本地设置和生产服务器上安装它。
  • 从本地 WP 安装创建导出文件。
  • 在您的生产 WP 安装中导入它,您的数据将被正确导出。

请注意,我假设您在生产服务器上安装了 WordPress。如果不是这种情况,您首先必须在那里安装 WordPress,然后按照步骤操作。

【讨论】:

    【解决方案4】:

    在“wp-config.php”中为“localhost”和“生产”服务器提供单独的数据库参数,如下所示。

    if($_SERVER['SERVER_NAME']=="localhost") //change if local server name is different
    {
        $db_name='local_db_name';
        $db_username='local_db_username';
        $db_password='local_db_password';
        $db_host='local_db_host';
    }
    else // production server database credentials
    {
        $db_name='production_db_name';
        $db_username='production_db_username';
        $db_password='production_db_password';
        $db_host='production_db_host';      
    }
    
    // ** MySQL settings - You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define('DB_NAME', $db_name);
    
    /** MySQL database username */
    define('DB_USER', $db_username);
    
    /** MySQL database password */
    define('DB_PASSWORD', $db_password);
    
    /** MySQL hostname */
    define('DB_HOST', $db_host);
    

    希望这会有所帮助。

    【讨论】:

    • 我也是这样做的,只是有时你需要检查$_SERVER['HTTP_HOST']。还有一件事——在本地和生产服务器之间同步,(在大多数情况下)你不需要同步根文件。只是/wp-content/ 文件夹的竞争(插件、主题和上传)。当然还有数据库内容。
    • 这种方法的缺点是您在 wp-config.php 中暴露了敏感凭据。
    • 我同意,但这是 WordPress 的默认设置,WordPress 本身将凭据保存在这里。问题是如何使用相同的 'wp-config.php' 而不是更高端的安全性。
    【解决方案5】:

    转到 Phpmyadmin,选择您的数据库,然后单击导出选项卡 在那里您可以以所需格式导出数据,然后使用导入选项卡将其导入。

    如果是页面或其他文件系统数据,您可以使用 filezilla 或其他 ftp 工具。

    【讨论】:

      【解决方案6】:

      我将如何做到这一点如下:

      //::1 is localhost on servers using ipv6, 127.0.0.1 is for ipv4
      $localIpList      = ['::1', '127.0.0.1'];
      $databasePassword = 'productionPassword';
      
      if (in_array($_SERVER['SERVER_ADDR'], $localIpList)) {
          $databasePassword = 'localDevPassword';
      }
      

      这样做使它很容易维护,并且 SERVER_ADDR 相当可靠,如果假设您使用不同的开发服务器(本地主机除外),使用带有 in_array() 的数组可以很容易地在将来添加 IP。

      【讨论】:

        【解决方案7】:

        处理这个问题的正确方法是使用服务器环境变量: https://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv

        我强烈建议您不要像其他人提到的那样将密码或任何其他私人信息直接存储在您的 wordpress wp-config 文件中

        您的本地设置将具有如下环境变量:

        SetEnv DB_USER mylocaldbuser
        SetEnv DB_NAME mylocaldbname
        SetEnv DB_HOST mylocaldbhost
        SetEnv DB_PASS mylocaldbpass
        

        那么您的生产服务器将拥有自己的一组环境变量:

        SetEnv DB_USER myproddbuser
        SetEnv DB_NAME myproddbname
        SetEnv DB_HOST myproddbhost
        SetEnv DB_PASS myproddbpass
        

        最后,您的 wp-config.php 文件将如下所示:

        define('DB_NAME',      $_SERVER['DB_NAME']);
        define('DB_USER',      $_SERVER['DB_USER']);
        define('DB_PASSWORD',  $_SERVER['DB_PASS']);
        define('DB_HOST',      $_SERVER['DB_HOST']);
        

        通过这种方式进行设置,您的 wp-config.php 文件将不会在您的不同环境中更改,因此您不必担心每次部署到 prod 时都需要对其进行编辑。如果不要在公共目录中的 wp-config 中公开任何敏感信息,您也会谨慎行事。

        【讨论】:

        • 这看起来更好,但设置 env 不会自动用数据填充 $_SERVER 变量。你的意思是$_ENV
        • 嗯,您应该可以使用 apache SetEnv 指令在您的 apache 配置中设置 $_SERVER 变量。
        猜你喜欢
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-21
        • 2018-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多