今天为客户网站整体搬家,客户只用到了阿里云的ECS和RDS,用的是MYSQL数据库,网站架构比较简单,搬家只需把网站文件和数据搬迁到新的服务器即可。
统计了一下,网站文件1.5T的样子,数据文件有2G左右,网站数据采用分卷打包的方式传输,过程也比较顺利,这里不多提。
本来以为数据文件远程导出一下也就十来分钟的事,用的是Navicat for MySQL来导出一下,直觉中只需加一下IP白名单就行了。
说干就干。
加完白名单后再从程序配置文件中找到数据账号和数据库连接地址,在Navicat for MySQL新建好连接后习惯性的点一下连接测试。
就发现严重的等待,直到超时报错。
第一直觉马上排查白名单是否有误,经过反复确认没有问题后,就把焦点放到了数据库连接和账号是否正确上了,又从网站配置文件对比了一下数据库信息,发现没有问题,怎么试都是一样的情况。
期间有想过是不是路由器的问题,由于用的是自己搭建的软路由,在防火墙有一些规则限制,一顿操作后发现问题照旧。
于是想到了除非法,在排除了RDS白名单没有加错,IP地址没有错误,数据库连接信息无误后,基本确实是网络问题,想到阿里云应该不会有BUG,问题应该还是出在客户端,于是我用Navicat for MySQL连接了另一个阿里云的RDS,发现一切正常,这也排除了我本址网络的问题。
在一通没想明白之时,我决定还是去RDS管理后台看看数据连接信息有没有问题。
在通过浏览搜索字符串时发现了问题所在,由于ECS和RDS是在阿里云同一个机房,所以程序中用的是内网地址链接的数据库,我本地肯定算外网了,马上更换为外网地址,问题马上解决。
在此分享给朋友们,越是不容易出问题的环节有时候出了问题越难以发现,越是初级的情况,有时候会越大意,在此也算给自己一个提醒,以后不要再犯同样的错误。