外部mysql 导入到amazon rds数据库 教学

尝试了多次aws官方rds建议的 方式:从s3导入 mysql到amazon rds,都提示数据库兼容性问题,无法正常启动和使用导入后的rds;所以放弃该方法。

使用下面方法从同一个VPC内部的ec2远程导入到rds,成功。

在此之前:有两个事情需要预先搞清楚:【A】mysql兼容,【B】mysqldump 备份命令

【A】:mysql兼容

  • 如果源实例是 MySQL 5.1.x,则 Amazon RDS 数据库实例必须是 MySQL 5.5.x。

  • 如果源实例是 MySQL 5.5.x,则 Amazon RDS 数据库实例必须是 MySQL 5.5.x 或更高版本。

  • 如果源实例是 MySQL 5.6.x,则 Amazon RDS 数据库实例必须是 MySQL 5.6.x 或 MariaDB。

  • 如果源实例是 MySQL 5.7.x,则 Amazon RDS 数据库实例必须是 MySQL 5.7.x、5.6.x 或 MariaDB。

  • 如果源实例是 MariaDB 5.1.、5.2 或 5.3,则 Amazon RDS 数据库实例必须是 MySQL 5.1.x。

  • 如果源实例是 MariaDB 5.5.x 或更高版本,则 Amazon RDS 数据库实例必须是 MariaDB。

重要

如果源 MySQL 5.6.x 实例运行版本 5.6.4 之前的版本,或者,如果源 MySQL 5.6.x 实例是从版本 5.6.4 之前的版本升级得到的,则必须创建运行版本 5.6.27 或更高版本的 Amazon RDS MySQL 数据库实例。

【B】mysqldump 备份命令:

备份源数据mysql:

mysqldump -u<数据库用户名>  -p 数据库 > /导出mysql存放位置/mysql.sql

例子:例如我的源数据
mysql 名为:oldmysql,
数据库用户名: user4oldmysql
mysql数据库密码为:12345678
备份输出位置为:/backup/mysqlbackup01.sql

那么备份执行mysqldump为:
mysqldump -uuser4oldmysql -p oldmysql > /backup/mysqlbackup01.sql

回车后提示输入mysql密码,黏贴密码回车即可备份。

注意:mysql在备份前,请清空mysql缓存(比如drupal的站内可使用clear cache)

从外部导入mysql (其他数据类似)方法之一:从amazon ec2远程连接到一个预先建立的空rds, 从ec2导入mysql 到amazon rds。

注意:mysql 导出的方式,源mysql版本必须低于目标导入rds的mysql版本,也就是说:目标mysql版本只能与源mysql相同 (相同有点难),或者更高-----如此才能达到向下兼容。

说白了就是低版本数据库可以导入到更高版本的数据库。具体说明请参考mysql官方说明。

外部mysql 导入到amazon rds数据库 教学 操作步骤:

 
1: 从ec2 远程连接到 amazon rds
 

1-1:ec2 和 amazon rds需要在一个VPC里,就是说,你自己amazon aws帐号里的ec2和rds可以互通;

1-2:ec2上需要预装mysql server ,如果没有,轻按下面步骤安装mysql server (最新版本)
连接到 Amazon EC2 实例,并使用以下命令安装最新更新和 MySQL 客户端工具:

sudo yum update -y
sudo yum install mysql-server -y

3:安装完毕mysql server 后,可以尝试连接远程rds,但在这之前,你需要对rds的安全组进行追加一个入站规则【允许 3306 远程入站访问 内网ip/32】,这个规则里的【内网ip/32】,就是你的ec2 (准备连接到rds的这个ec2的内网 ip ),出站规则也要假设,仅出站到对应ec2 (ec2 的内网ip/32)

4: 将准备导入rds里的mysql预先使用pysqldump导出,放置在ec2上指定文件夹里,然后使用如下命令,远程连接到rds

mysql -h <host_name> -P 3306 -u <db_master_user> -p

5: 远程连接到后,使用如下命令导入mysql

mysql> source /源数据backup.sql;
分类: