宝塔MySQL数据库迁移到阿里云RDS

原来使用宝塔建立MySQL数据库。由于占用内存太大,决定更换到阿里云的RDS数据库减轻服务器压力。下面是迁移的过程。

1、在宝塔后台获取数据库信息,并在阿里云RDS进行设置

宝塔后台获取数据库信息:

宝塔MySQL数据库迁移到阿里云RDS

阿里云RDS设置需要如下操作。完成后进入第二步

  1. 创建RDS MySQL实例
  2. 设置白名单
  3. 申请或释放外网地址
  4. 创建数据库和账号

2、使用mysqldump将本地数据库数据导出为数据文件

在ssh直接输入下面命令。回车后输入你在第一步获得到的数据库密码,再回车即可。

mysqldump -h localIp -u userName -p --opt --default-character-set=utf8 --hex-blob dbName --skip-triggers --skip-lock-tables > /tmp/dbName.sql

参数说明:

  • localIp:本地数据库服务器IP地址。
  • userName:本地数据库的用户名。
  • dbName:需要迁移的数据库名。
  • /tmp/dbName.sql:备份生成的文件名。
宝塔MySQL数据库迁移到阿里云RDS

3、使用mysqldump导出存储过程、触发器和函数

在ssh直接输入下面命令。回车后输入你在第一步获得到的数据库密码,再回车即可。

mysqldump -h localIp -u userName -p --opt --default-character-set=utf8 --hex-blob dbName -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' > /tmp/triggerProcedure.sql

参数说明:

  • localIp:本地数据库服务器IP地址。
  • userName:本地数据库的迁移账号。
  • dbName:需要迁移的数据库名。
  • /tmp/triggerProcedure.sql:备份生成的文件名。
宝塔MySQL数据库迁移到阿里云RDS

4、去除sql文件的DEFINER关键字

在ssh依次输入输入下面命令。

vim /tmp/dbName.sql
:g/^SET/d
:wq
vim /tmp/triggerProcedure.sql
:g/^SET/d
:wq
宝塔MySQL数据库迁移到阿里云RDS

5、将数据文件和存储过程文件导入到目标RDS中。

在ssh直接输入下面命令。回车后输入你在第一步获得到的数据库密码,再回车即可。

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

参数说明:

  • intranet4example.mysql.rds.aliyuncs.com:RDS实例连接地址,本例以内网地址为例。
  • userName:RDS数据库的高权限账号或具有读写权限的账号。
  • dbName:需要导入的数据库名。
  • /tmp/dbName.sql:要导入的数据文件名。
  • /tmp/triggerProcedure.sql:要导入的存储过程文件名。
宝塔MySQL数据库迁移到阿里云RDS

也可以使用DTS将业务数据迁移到rds中,具体参考:https://help.aliyun.com/document_detail/26621.html

原创文章,作者:钻头,如若转载,请注明出处:https://www.zuantouxc.cn/archives/642

本博客使用简单好用的服务器运维面板搭建:宝塔面板

本博客使用服务器由阿里云长期提供:阿里云

发表评论

电子邮件地址不会被公开。 必填项已用*标注