数据库恢复期间出现 Index_users_on_username_lower 错误:导入失败

这一天简直疯了,但如果有人像我一样运气差到极点,我会尽量解释我是如何修复一切的:upside_down_face:

  1. 下载备份文件,并多次解压,直到你得到 dump.sql 文件。

  2. 使用类似 vim 的软件编辑 dump.sql:download : vim online

  3. 我对 SQL 一窍不通。为了找到正确的表,我搜索了 username_lower,,它指向了 users 表,然后我搜索了 “lea”。我修改了两条 Lea 的条目。可能这样做其实很简单,但请记住,我对 SQL 很不擅长,尤其是当文件高达 1.5GB 时。保存文件。

  4. 使用 7zip 将 dump.sql 压缩为 gzip 格式。你应该会得到一个新文件:dump.sql.gz

  5. :file_folder: /var/discourse/shared/standalone/backups/default/ 下创建一个新文件夹,我用了 test。

  6. 如果你的网络连接良好,上传你解压备份文件时获得的 :file_folder: uploads 文件夹,将其放入 /var/discourse/shared/standalone/backups/default/test/
    6.1 如果你像我一样网络连接不好,你必须使用服务器。记下你的备份文件名,然后运行以下命令:tar xvzf /var/discourse/shared/standalone/backups/default/yourbackupfile.tar.gz -C /var/discourse/shared/standalone/backups/default/test
    6.2 在 test 文件夹中,你应该会看到 dump.sql.gz 文件和 uploads 文件夹。这样就对了。

  7. 将你 test 文件夹中的 dump.sql.gz 文件上传,以替换损坏的 dump.sql.gz 文件。

  8. 在服务器上执行:cd /var/discourse/shared/standalone/backups/default/test

  9. 你需要重新创建备份文件,必须使用旧备份文件的准确名称:tar -czvf yourbackupfile.tar.gz uploads/ dump.sql.gz

  10. 进入你的 FTP,前往 :file_folder: /var/discourse/shared/standalone/backups/default/,删除损坏的备份文件,或将其移动到其他文件夹。

  11. 将新的备份文件移动到 /var/discourse/shared/standalone/backups/default/

  12. 恢复备份。我更喜欢使用这种方法,如果你已经走到这一步,应该可以轻松使用它:Restore a backup from the command line

备份应该会成功:sweat_smile:

很简单。

4 个赞