阿里云ECS自建MySQL to RDS云数据库迁移记录

本文最后更新于2015年8月27日,已超过半年没有更新,如果内容失效,请反馈,谢谢!

ECS 云服务器中有几个网站,经常动不动的数据库就挂掉了,访问量很小,开始以为是 OOM 的问题,升级了内存和网络带宽之后还是照样挂掉。索性想把 MySQL 迁移到 RDS 中不知道会不会好一些。

申请 RDS 云数据库

目前 RDS 云数据库正在搞活动,0 元/半年,50 元/ 12 个月。加上有个 2015 开年红包的活动,最少可以领 58 元代金卷,所以相当于免费用一年,所以赶紧申请一个 RDS 云数据库试一下。

在 ECS 自建数据库中创建迁移帐号

Step 1:用 Putty 等 XShell 客户端以 root 用户登录服务器数据库
my -u root -P
输入 root 用户密码登录数据库

Step 2:创建迁移帐号
命令格式:
grant all privileges on DB.* to 'userName'@'%' identified by 'password';

说明:
其中 userName 和 password 设置你自己喜欢的,但不允许含有%¥#!等特殊字符
创建以后要记住 userName 和 password 后面要用到。

哥在创建帐号时就报错了,被系统嫌弃了,提示:
MySQL server has gone away

此时先要解决 MySQL 的问题,解决方法是尝试在 my.cnf 文件中添加或者修改以下变量:
wait_timeout=2880000
interactive_timeout = 2880000
max_allowed_packet = 10M(也可以设置自己需要的大小)

max_allowed_packet 参数的作用是,用来控制其通信缓冲区的最大长度。

修改后重启 MySQL 服务:
Service mysqld restart

这样修改以后,迁移帐号就创建成功了。

Step 3:为迁移帐号设置权限

命令格式:
grant super,process,select,reload,lock tables,replication slave,replication client ON *.* TO 'userName'@'%';

说明:该命令对刚创建的数据库账号 userName 赋予 super、process、select、reload、lock tables、replication slave、replication client 权限。

Step 4:确认 MySQL 配置文件 my.cnf 有如下设置项

[mysqld]
log_bin=mysql-bin
binlog_format=row
server_id=2

说明:
a) 开启二进制日志,log_bin=mysql-bin;
b) 设置binlog格式为“ROW”模式,binlog_format=ROW;
c) server_id要大于1,如 server_id=2;
d)修改完成后,重启 MySQL 服务。

修改重启完后通过命令查看是否为“ROW”模式
命令格式:
show variables like ‘%binlog_format%’;

哥哥这一步修改完配置后用 show 命令查看的时候始终报错,最后无视也迁移成功了。所以查看不是必须的,但配置一定要修改。

RDS 管理控制台对应的实例页面将数据迁移至RDS

Step 5:在 RDS 中创建数据库
在 RDS 管理控制台实例-数据库管理 页面创建与 ECS 自建数据库同名的数据库

Step 6:在 RDS 中创建数据库用户
在 RDS 管理控制台实例-帐号管理 页面创建与 ECS 自建数据库对应的数据库用户,并设置相同的密码。这里 RDS 数据库用户和密码最好和你 ECS 数据库用户名和密码保持一致,这样后面就可以只修改数据库连接地址就可以访问了。
创建用户时会要求选择与对应的数据库绑定。

Step 7:将自建数据库迁移至 RDS
在RDS管理控制台对应的实例页面,点击“将数据迁移至 RDS”按钮,在弹出框中填写待迁移的数据库连接地址、数据库连接端口、数据库账号、数据库密码,如下图所示:

ECS 自建数据库迁移到 RDS 云数据库
ECS 自建数据库迁移到 RDS 云数据库

说明:
数据库连接地址:ECS 分配的内网地址,填写后点“检验”,检验确实地址无误后下面的“获取数据库列表”按钮将变成绿色可用状态
数据库帐号:step 1 时在 ECS MySQL 数据库中创建的数据库迁移账号 userName
数据库密码:step 1 时在 ECS MySQL 数据库中创建的数据库迁移账号的密码 password

点击“获取数据库列表”按钮获取数据库列表,右侧将列出可以迁移的数据库,MySQL 的系统库不能被迁移。列出数据库后选择需要迁移的数据库,点“下一步”按钮。接下来将检查相同的设置,完成数据库导出和导入,只需要点两下鼠标和等待状态显示为“迁移完成”即可。

修改 WEB 网页中的数据库连接地址

FTP 登录网站目录,下载数据库连接相关的网页,比如 wordpress 程序是在 wp-config.php 中,将程序的数据库主机连接地址,由 localhost 修改为 RDS 的数据库连接地址,网站又可以访问了。

至于 ECS 自建 MySQL 数据库迁移到 RDS 云数据库之后,数据库是否还会挂掉就不确定了,试试看吧。

参考官方迁移帮助文档:数据迁移至 RDS-MySQL 之利用 RDS 管理控制台


 

阿里云 ECS 云主机和 RDS 云数据库九折优惠推荐码:DT7B3C

除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。
本文链接地址:
订阅本站:http://maie.name/feed投稿联系:m[at]maie.name

猜你也喜欢:

共有 3 条评论

发表评论

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