老刘博客前文《UCloud云数据库MySQL产品优势及与自建数据库对比》有阐述过MySQL云数据库,云服务器自建数据库以及IDC自建数据库三者间的区别,总的来说云数据库在性价比、可靠性、易用性、安全性能上均占优,老刘也非常推荐大家将核心业务或业务增长性强的数据迁移到云数据库来,轻松应对高并发、大规模数据处理需求,安全高效管理企业核心数据。
如果我们仅仅是做网站的话,直接云服务器中配置带有MySQL数据库就可以直接使用,不过一些大型客户端或者其他比较大数据库的项目是将数据库与网站分离的,也有些是项目不需要用到云服务器,而只需要数据库的,其实这个时候普通云服务器就不是特别适合了。这时需要用到的是直接云数据库,这种的云数据库相对自己在云服务器搭建的性能会更加优秀一些,且配套的安全功能也多一些。
本文以老刘博客站点数据库自UCloud优刻得快杰云主机上迁移至UCloud优刻得高可用版NVMe机型UDB MySQL为例(BTW:NVMe机型快杰UDB MySQL是UCloud发布的最新版MySQL云数据库机型,老刘来尝尝鲜),实操演示云服务器内网连接云数据库流程,以供参考。
老刘博客laoliublog.cn是搭建在UCloud香港快杰云主机上的,站点的数据库也是通过宝塔面板一键部署搭建的,如图红色框中的是老刘博客站点的数据库,并且已经最新做了备份。
将云服务器自建数据库备份下载下来:选择“有备份”——“下载”,完成数据库压缩包的下载。
想要站点服务器上自建的这个名为www_laoliublog_的数据库迁移到云数据库上,我们要做的就是买上一台UCloud优刻得的云数据库,将上图备份好的数据库下载下来,上传到云数据库上,然后站点(服务器)通过内网连接上云数据库,实现数据库顺利迁移,网站迁移后正常运行和访问。
现在我们去UCloud控制台买一台云数据库,具体购买流程参参见《UCloud云数据库MySQL产品快速上手操作指南》。由于网站自建数据库类型是MySQL,接下来要买的云数据库类型也是MySQL云数据库(BTW:宝塔建站部署的基本都是MySQL数据库)。
这里要选的MySQL云数据库地域是香港可用区,因为老刘博客站点的云服务器是在香港,通过内网连接的方式需要买同一个地域的云数据库。注意,优刻得云数据库出于用户数据安全考虑,默认支持内网连接访问云数据库,如果想通过外网访问UCloud云数据库,也是可以做到的,方案是使用UCloud优刻得NAT网关+EIP进行端口转发或使用Mysqlproxy做转发代理,这里本文暂不展开,待老刘之后文章阐述。由于老刘博客站点服务器自建的数据库版本是5.6,这里MySQL云数据库版本同样选5.6版本。
MySQL云数据库网络设置所属VPC和所属子网根据站点云服务器的所属VPC和所属子网来选择,因为老刘博客网站服务器所属VPC是默认VPC,这里默认即可,另外网站服务器的内网IP是10.8.81.149,是10.8子网号段,因此云数据库子网也选10.8.0/16。子网号段要一致,这样是在同一局域网里,也就是内网连接,实现内网访问云数据库。
设置好一个能记住的密码,命名下云数据库名称(默认“MySQL数据库”,也可),数据库端口是3306。
购买完成后,等等云数据库初始化直至状态显示:运行,大概需要2-3分钟。
MySQL云数据库初始化:
MySQL云数据库运行中:
如上图可知,MySQL云数据库的内网IP地址是10.8.59.31。
点击“···”,选择“登录”,输入云数据库账号密码,点选按钮“执行”,进入云数据库管理后台。BTW:点登录后需要加载一会,耐心等待哈;点一次“执行”没反应的话,就再点一次,一般2次进到云数据库管理后台。自带的phpMyAdmin还是挺难用的,实际操作建议用mysql client等工具来登录,这里不作展开。
进到MySQL云数据库后台,选择New新建数据库,这里命名为laoliublog_cn,其他默认设置,然后创建。
在创建好的laoliublog_cn数据库下导入前面下载好的云服务器自建数据库备份,上传压缩包后,点选“执行”。
显示下图这样就说明数据库导入成功了。
OK,现在我们来测试下云服务器能不能内网连接访问云数据库。登录云服务器,输入以下代码:
mysql -h10.8.59.31 -P3306 -uroot -p1***A
其中10.8.59.31是云数据库IP地址,3306是数据库端口,root是数据库(登录)用户名,1***A是设置的云数据库(登录)密码。返回如下结果,这说明云服务器通过内网连接上了云数据库。可以说老刘博客站点云服务器自建数据库迁移到云数据库上已经成功了?但真的是这样吗?
如果真的成功了,那我们可以通过云数据库正常运行网站了,用户访问正常。现在我们把把宝塔面板上mysql软件暂停或者干脆把云服务器上自建数据库删除。
如果数据库已经成功迁移了,那站点可以正常打开访问,但事实是报错:Error establishing a database connection。这说明还不是真正意义上的迁移成功,那问题出在哪里?
显然云服务器虽然能连上云数据库,但网站程序,并没有连上。这里我们需要去修改老刘博客WordPress站点根目录下的网站配置文件wp-config.php。
将wp-config.php文件中以下代码:
define( 'DB_NAME', 'www_laoliublog_' );
/** MySQL database username */
define( 'DB_USER', 'www_laoliublog_' );
/** MySQL database password */
define( 'DB_PASSWORD', 'i***Y' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
修改为:
define( 'DB_NAME', 'laoliublog_cn' );
/** MySQL database username */
define( 'DB_USER', 'root' );
/** MySQL database password */
define( 'DB_PASSWORD', '1***A' );
/** MySQL hostname */
define( 'DB_HOST', '10.8.59.31:3306' );
修改后的值分别是什么,大家应该能看明白,修改前的值是云服务器自建数据库的数据库名称,用户名,密码和数据库地址(本地),修改后的值是云数据库的名称,用户名,密码和云数据库地址(端口3306),这里具体值是多少,前面都有提及。完成了上述步骤,这样才是真正意义上,云服务器自建数据库迁移成功到云数据库,这次刷新老刘博客站点,可以正常访问了。现在你可以通过以下链接去实操云服务器自建数据库迁移至云数据库流程啦~
以上手动下载、上传数据库的方式仅适合小数据量的数据库迁移,应对TB,PB级数据迁移,可以使用免费工具UDTS服务来操作,参见《使用UDTS内网访问实现快杰云主机自建数据库迁移至UCloud云数据库》。