阿里云ECS自建MySQL to RDS云数据库迁移记录
在阿里云 ECS 云服务器中有几个网站,经常动不动的数据库就挂掉了,访问量很小,开始以为是 OOM 的问题,升级了内存和网络带宽之后还是照样挂掉。索性想把 MySQL 迁移到 RDS 中不知道会不会好一些。
申请 RDS 云数据库
目前阿里云 RDS 云数据库正在搞活动,0 元/半年,50 元/ 12 个月。加上有个 2015 开年红包的活动,最少可以领 58 元代金卷,所以相当于免费用一年,所以赶紧申请一个 RDS 云数据库试一下。
在 ECS 自建数据库中创建迁移帐号
Step 1:用 Putty 等 XShell 客户端以 root 用户登录服务器数据库
mysql -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 分配的内网地址,填写后点“检验”,检验确实地址无误后下面的“获取数据库列表”按钮将变成绿色可用状态
数据库帐号: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
除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。查看声明
本文链接地址: https://maie.name/715.html
订阅本站:https://maie.name/feed,打赏:https://maie.name/donation
这款主题我也曾用过,页首可以添加背景图,你可以看下 : http://blog.manmemo.com
出门走的了远游,在家干得了技术活,兄弟你真是相当可以啊!
可以认为是在表扬我么