采用MySQLdump工具迁移

该方案优点是简单,容易上手;缺点是停机时间较长。 因此它适用于数据量不大,或者允许停机的时间较长,并且在这个时间范围内能够完成。

由于RDS提供的关系数据库服务与原生的数据库服务是完全兼容的,所以对于用户来说,从原有数据库迁移到RDS数据的过程,与从一个mysql服务器迁移到另外一台mysql服务器的过程基本类似。具体的迁移流程如下:

1、 开通云服务器服务。 

2、 开通RDS服务,如果开通成功,会返回给用户连接地址和端口,比如cloudcc.mysql.rds.aliyuncs.com:3306。 

3、 先停止业务,使用MySQLdump的数据导出工具,将您线下原有数据库数据导出为数据文件((本步骤仅仅导出数据,不包括存储过程,函数,触发器)。具体命令如下:

 mysqldump
-h local_ip -u user_name -p --opt --default-character-set=utf8  
--hex-blob db_name --skip-triggers  > /tmp/db_name.sql

 

其中

local_ip 以您真实的线下MySQL服务器IP地址代替

user_name 以您真实的数据库用户代替

db_name   以您真实的数据库名代替

/tmp/db_name.sql是文件名,由您自己随意填写。

 

4、备份您线下原有数据库的存储过程、触发器和函数(若您数据库中没有使用存储过程、触发器和函数,则跳过这步),在导出存储过程、触发器和函数时,需要将definer去掉,以兼容RDS。具体命令如下:

mysqldump -h local_ip -u user_name -p --opt --default-character-set=utf8   --hex-blob db_name –triggers -d -t  -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'  > /tmp/trigger_procedure.sql 

其中

local_ip 以您真实的线下MySQL服务器IP地址代替

user_name 以您真实的数据库用户代替

db_name   以您真实的数据库名代替

/tmp/trigger_procedure.sql是文件名,由您自己随意填写。

 

5、将数据文件和存储过程文件上传到已经购买的云服务器中。 

6、远程登录到云服务器,将刚才上传的数据文件导入到已购买的RDS实例中。具体命令如下:

mysql -hexample.mysql.rds.aliyuncs.com –uuserName -p dbName < /tmp/dbName.sql

其中

example.mysql.rds.aliyuncs.com:RDS实例连接地址;

user_name 以您真实的RDS数据库用户代替

db_name   以您真实的RDS数据库名代替

/tmp/db_name.sql是刚才前面您导出的数据文件名称

 

7、远程登录到云服务器,将刚才上传的存储过程文件(包含存储过程、触发器和函数,若没有则请跳过此步)导入到已购买的RDS实例中。具体命令如下:

mysql -h example.mysql.rds.aliyuncs.com -u userName -p dbName < /tmp/triggerProcedure.sql 

其中

example.mysql.rds.aliyuncs.com:RDS实例连接地址;

user_name 以您真实的RDS数据库用户代替

db_name   以您真实的RDS数据库名代替

/tmp/trigger_procedure.sql是刚才前面您导出的存储过程文件名称

至此数据迁移完毕,可以对RDS正常使用。用户可使用数据库客户端工具(如MySQL-Front)或第三方数据库管理工具(如phpmyadmin)以及程序的方式,通过域名和端口号连接数据库,在输入正确的用户名和密码后即可登录DB进行操作和开发。

时间: 2024-10-28 20:18:24

采用MySQLdump工具迁移的相关文章

mysqldump工具命令操作mysql备份导入导出实例

mysqldump工具很多方面类似相反作用的工具mysqlimport.它们有一些同样的选项.但mysqldump能够做更多的事情.它可以把整个数据库装载到一个单独的文本文件中.这个文件包含有所有重建您的数据库所需要的SQL命令.这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句.这个工具将您的数据库中所有的设计倒转.因为所有的东西都被包含到了一个文本文件中.这个文本文件可以用一个

Mysql中使用mysqldump工具进行数据维护

使用mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出. 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表. 注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载 整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题. mysqldump支持下列选项: --add-lock

MySQL的mysqldump工具用法详解_Mysql

导出要用到MySQL的mysqldump工具,基本用法是:   复制代码 代码如下: shell> mysqldump [OPTIONS] database [tables]   如果你不给定任何表,整个数据库将被导出.   通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表.   注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题. 

解析MySQL中mysqldump工具的基本用法_Mysql

导出要用到MySQL的mysqldump工具,基本用法是:   shell> mysqldump [OPTIONS] database [tables]   如果你不给定任何表,整个数据库将被导出.   通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表.   注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题.   mysqldump

MySQL中mysqldump工具使用方法详解

导出要用到MySQL的mysqldump工具,基本用法是:    代码如下 复制代码 shell> mysqldump [OPTIONS] database [tables]   如果你不给定任何表,整个数据库将被导出.   通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表.   注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题. 

MySQL备份还原——mysqldump工具介绍

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象 (表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移.升级.不足之处就是数 据库比较大时,mysqldump的效率不高. mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help --add-drop-table      

MySQL备份还原&amp;mdash;&amp;mdash;mysqldump工具介绍

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移.升级.不足之处就是数据库比较大时,mysqldump的效率不高.   mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help   --add-drop-table    

使用mysqldump工具备份还原Mysql数据库

我们在网站数据维护中经常会遇到备份数据库,还原数据库的情况,我们一般用一下两种方式来处理: 1.使用into outfile 和 load data infile导入导出备份数据 这种方法的好处是,导出的数据可以自己规定格式,并且导出的是纯数据,不存在建表信息,你可以直接导入另外一个同数据库的不同表中,相对于mysqldump比较灵活机动. 我们来看下面的例子: (1)下面的mysql命令是把select的mytable表中的数据导出到/home/db_bak2012文件. select * f

运用mysqldump 工具时需要注意的问题_Mysql

描述如下: 用mysqldump 导出 Trigger 的时候遇到一个问题,贴出来,以免大家犯错. 在执行下面的操作时: 复制代码 代码如下: [root@ytt ~]# /usr/local/mysql/bin/mysqldump -S /tmp/mysql1.sock test > test.sql 导出的结果里面含有 Trigger. 复制代码 代码如下: [root@ytt ~]# /usr/local/mysql/bin/mysqldump -S /tmp/mysql1.sock -R