- 我在云提供商上创建了一个实例。生成了 .pem 密钥以通过 ssh 登录。
- 安装了 mysql-server ,在服务器上下载了.sql 备份。
- 从本地计算机中删除了 .sql 备份,并且错误地删除了通过 SSH 连接到 mysql 服务器所需的 .pem 密钥。问题:如何恢复 .sql 备份文件?我知道 mysql dump,但我不知道是否可以从服务器本身加载文件,而无需通过 ssh 实际登录该服务器。我知道它在 /home/back.sql 上,但我无法再通过 SSH 连接到服务器。是否有可能将其恢复,还是它永远丢失了。在 mysql-server 上,我有“root”访问权限,但我认为 mysql 应用程序/服务器是以“mysql”用户而不是“root”身份安装的,所以我不确定是否/如何破解它。Centos 6.mysql-server(通过 yum 获得的最新版本)。
答案1
云实例是 EC2 吗?您可以登录 IaaS 控制台并创建新的公钥/私钥来连接到该实例。
答案2
我不认为如果没有 pem 文件您就无法登录到您的 ec2 实例。您必须从头开始完成整个练习。
答案3
您可以尝试使用类似
create table test (i int primary key auto_increment, a longtext);
load data infile '/home/back.sql' into table test
fields terminated by '_a_string_which_is_not_in_file_'
optionally enclosed by '' escaped by ''
lines terminated by '\n'
(a);
从 mysql 内部将您的备份文件读取到行表中,但我认为在 CentOS 上您的努力会被 SELinux 阻止,因为 MySQL 服务器不应该读取 中的任何内容/home/
。
因此,如果您无法在禁用 SELinux 的情况下启动(例如使用enforcing=0
启动选项),那么云提供商支持是您唯一的选择。