gpt4 book ai didi

未加密的 Amazon RDS 上的 Mysqldump 正在创建加密的 .db 文件

转载 作者:行者123 更新时间:2023-11-29 06:45:22 25 4
gpt4 key购买 nike

我正在尝试创建 RDS 数据的转储并在​​本地使用它。

我使用了以下命令:

mysqldump -h myhostname.rds.amazonaws.com -u my_username -p my_dbname > ~/Downloads/dump.sql

当我尝试在 DB Browser for sqlite 等工具中查看此数据时,我收到一条提示,提示数据已加密,要求输入密码。

我想也许需要先将其转换为 sqlite,所以我在 RazorSQL 中完成了此操作 -> 但我仍然遇到同样的问题。另外,当我尝试将数据库加载到 NodeJS 的 sqlite 模块中时,我得到:

无法查询 SQLite DB 中的表错误:SQLITE_NOTADB:文件已加密或不是数据库

我检查了我的 RDS 设置,它显示:


加密详细信息:
启用加密

所以我不知道这里发生了什么。有小费吗?文件扩展名(.sql.db 等)在这里有什么不同吗?

最佳答案

When I try to view this data in a tool like DB Browser for sqlite

Sqlite 与 MySQL 完全不同。可以同时使用两者的工具很少有重叠。

您使用的工具无法用于您所应用的目的,因此您会收到一个令人困惑的错误:

file is encrypted or is not a database

换句话说,该工具无法理解该文件,因此发生了以下两件事之一:该文件已加密或者根本不是[sqlite]数据库 .

问题是后者。

文件未加密。即使 RDS 实例已加密,生成的转储文件仍然不会加密,因为 RDS 中的加密是对支持 RDS 实例的磁盘卷上的静态数据进行存储级加密。 RDS 中的加密对用户是透明的。

问题是您这里有一个转储文件 - 一系列 SQL 语句,可用于在另一台 MySQL 服务器上重建数据库

您的文件是纯文本。您可以使用文本编辑器查看它。你不能做的是使用该文件作为数据库——这是 Sqlite 可以做的,因为 Sqlite 将数据库存储在单个可传输文件中。 MySQL 是一种不同的架构。

您需要在本地安装相同版本(例如 5.7.x)的 MySQL Server,然后加载此文件。

shell> mysql [options] < my_dump_file.sql

To reload a dump file written by mysqldump that consists of SQL statements, use it as input to the mysql client.

https://dev.mysql.com/doc/refman/5.7/en/reloading-sql-format-dumps.html

您还可以使用 MySQL 的查询浏览器工具,例如 Toad 或 Workbench,但需要本地 MySQL 服务器。

关于未加密的 Amazon RDS 上的 Mysqldump 正在创建加密的 .db 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49723817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com