24

我创建了一个名为 realcardiodb 的 RDS 实例(引擎是 mysql),并从本地主机导出了我的数据库。文件保存在本地,名为 localhostrealcardio.sql

大多数研究表明使用 mysqldump 将数据从本地系统导入 Web 服务器,但我的系统甚至无法识别 mysqldump。

C:\xampp\mysql>mysqldump
'mysqldump' is not recognized as an internal or external command, operable program or batch   file. 

如果我使用 mysqldump,我该如何解决这个错误?(我的系统上肯定安装了 mysql)

我应该使用更好的实用程序吗?

任何帮助表示赞赏,特别是如果您有将 mysql 导入 aws rds 的经验。

谢谢!丹麦

2012 年 7 月 31 日更新 所以我解决了错误。mysqldump 位于 bin 目录 C:\xampp\mysql\bin>mysqldump AWS 提供了将本地数据库上传到 RDS 的以下说明:

mysqldump acme | mysql --host=hostname --user=username --password acme

有人可以帮我分解一下吗?

1)第一个'acme'(在mysqldump命令之后)是我本地数据库的名称还是我在本地保存的导出sql文件的名称?

2) 主机名是 IP 地址、公共 DNS、RDS 端点还是两者都不是?

3)我假设的用户名和密码是 RDS 凭据,第二个 acme 是我在 RDS 中创建的数据库的名称。

谢谢!

4

6 回答 6

49

这就是我对在 MySQl 表中有数据的几个实例执行此操作的方式。

创建 RDS 数据库实例的步骤:http: //docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.MySQL.html

注意:确保 RDS 实例配置了与 EC2 安全组相关的安全组。 http://docs.amazonwebservices.com/AmazonRDS/latest/UserGuide/USER_Workin ...

在我们继续之前,让我提供以下一些占位符的列表:

  • host.address.for.rds.server = 这将是您的 RDS 描述/设置页面中的“端点”。
  • rdsusername = 您在 RDS 设置期间创建的主用户帐户。
  • rdsdatabase = 您在 RDS 实例上的服务器内创建的空白数据库。
  • backupfile.sql = 由预先存在的安装数据库制作的 sql 转储文件。

创建新的 RDS 数据库实例并配置其安全设置后,登录到此服务器(从 ssh 会话到 EC2 服务器),然后使用基本 SQL 命令在实例内创建一个空数据库。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p
(enter your password)
create database rdsdatabase;

然后退出 RDS 服务器内的 MySQL 环境。

\q

本教程假设您已经拥有旧数据库的备份。如果你不这样做,现在就去创建一个。之后,您就可以将该 sql 转储文件导入 RDS 服务器上等待的空数据库中了。

mysql -h host.address.for.rds.server -u rdsusername -p  rdsdatabase < backupfile.sql

可能需要几秒钟才能完成,具体取决于 sql 转储文件的大小。您完成的指示是 bash 命令提示符再次出现。

注意:当将数据直接导入数据库中的现有表时,使用命令“mysqlimport”。看起来我们正在“导入”数据,但这并不是我们在这种情况下实际所做的。我们要迁移到的数据库还没有表,我们使用的 sql 转储文件包含 sql 命令来生成它需要的表。

确认转账

现在,如果您没有收到任何错误消息,那么您的 sql 传输可能有效。如果需要,您可以通过连接到您的 RDS 数据库服务器、查找您创建的数据库并检查表现在是否存在来仔细检查它是否存在。

mysql -h host.address.for.rds.server -P 3306 -u rdsusername -p
(enter your password)
use rdsdatabase;
show tables;
于 2012-08-01T20:26:06.433 回答
27

我更喜欢使用 MySQL 工作台。它比命令行方式更容易和用户友好。

它提供了一个简单的 GUI。

MySQL 工作台或 SQL Yog。

这些是我所做的步骤。

1) 安装 MySQL 工作台。

2) 在 AWS 控制台中,您的 RDS 实例必须有一个安全组。向该组添加入站规则以允许来自您的计算机的连接。这很简单。添加您的 IP 地址。

3) 打开 MySQL 工作台,添加一个新的连接。

4) 给连接起一个您喜欢的名称。

5) 选择连接方式——标准 TCP/IP

6) 在主机名字段中输入您的 RDS 端点。

7) 端口:3306

8) 用户名​​:主用户名(您在创建 RDS 实例时创建的用户名)

9)密码:主密码

10) 单击测试连接以检查您的连接。

11) 如果连接成功,单击确定。

12) 打开连接。

13) 你会在那里看到你的数据库'realcardiodb'。

14) 现在您可以将 mysqldump 文件导出到该数据库。转到-> 服务器。单击数据导入。

15) 您可以通过简单地打开一个空白的SQL文件并输入基本的SQL命令,如使用数据库,从表中选择*来检查数据是否已经迁移;

而已。中提琴。

于 2014-06-04T04:28:24.827 回答
3

如果您的 PC 中有 backup.sql,则无需传输到 EC2。只需在 PC 的终端上输入以下行。

$ mysql -h rdsinstance-hostaddress-ending.rds.amazonaws.com -u rds_username -p  rds_database < /path/to/your/backup.sql

输入密码:passwd_mysql_user

就这样。

直接从现有远程服务器导入备份

SSH 连接到您的远程服务器

获取远程服务器mysql备份(backup/path/backupfile.sql)

在远程服务器 shell 中将备份文件导入 RDS mysql

mysql -h your-mysql-instance.region.rds.amazonaws.com -u db_username -p db_name < backup/path/backupfile.sql

笔记:

我已经尝试了上述所有标准来将我现有的备份导入新的 RDS 数据库,包括通过 AWS 文档中的 EC2。这是一个 10GB 的备份。所以我也尝试过逐个表格。它显示过程已完成,但大型表缺少一些数据。所以我不得不编写一个 DB 到 DB 的数据迁移脚本。

于 2017-03-17T17:03:44.200 回答
2

使用工作台:

  1. 建立连接

  2. 转到管理选项卡并单击数据导入/恢复

  3. 单击从自包含文件导入。

  4. 选择你的mysqlbackup.sql文件。

  5. 选择默认数据库。

  6. 点击开始导入按钮。

使用命令行(在 Windows 上):

mysqldump -u <localuser>

--databases world 
--single-transaction 
--compress 
--order-by-primary  
-p<localpassword> | mysql -u <rds-user-name>
    --port=3306 
    --host=ednpoint 
    -p<rds-password>

有关更多详细信息,请参阅: https ://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.SmallExisting.html 或 https://docs.bitnami.com/aws/how-to/迁移数据库-rds/#using-phpmyadmin-110

希望能帮助到你。

于 2018-09-07T09:45:15.017 回答
1

关于如何将 mysql/mariadb 上已有的数据库迁移到已经运行的 RDS 实例的分步说明。

于 2019-08-06T19:46:43.220 回答
0

这是将客户数据导入 RDS 的 AWS RDS Mysql 文档

http://aws.amazon.com/articles/2933

  • 创建包含要加载的数据的平面文件
  • 停止访问目标数据库实例的任何应用程序
  • 创建数据库快照
  • 禁用 Amazon RDS 自动备份
  • 使用 mysqlimport 加载数据
  • 再次启用自动备份
于 2013-12-04T09:36:27.730 回答