版本对内存的需求很大,我买了1G内存的服务器,网站却常显示502错误,为此又添置了一台不带外网接口的服务器,专门用来运行数据库,这台服务器仅能被程序服务器从内网访问,将来还能负责redis及其他数据库服务
过去处理类似情况时,我通常借助服务器配置完成迁移,例如借助特定软件搬运数据仓库。不过此次操作将选用资料复制途径。众所周知,myql保存信息的方式,本质上就是依靠文档进行。所以只要把那些象征信息的文档悉数搬到新机器上,数据仓库便视作已搬迁,登录凭证也毫无改变。下面就来看具体操作。
局域网服务器的开通
新购置的机器不具备公网地址,无法运用常规方式建立ssh链接,我借助现成的中转服务器,先登录到那台旧机器,然后经由该设备,借助内部网络编号,与崭新的服务器建立联系。
连接到服务器存在一定困难,新的服务器设备(以下简称B,原先的程序服务器称为A)缺乏外部网络地址,因此不能借助wget工具从网络直接获取所需的程序代码。既然无法对外部资源进行访问,又该如何获取必要的文件资料呢?我采用了scp命令,将文件从A传输到B。在A设备上运行scp指令,便可以将从网络下载的文件成功放置到B设备中。scp命令的具体用法就不解释了。
数据库连接权限准备
迁移数据库前,需为新服务器环境做好相关准备工作。一旦将数据存放到新平台,原有连接方式将失效。同时,用户授权方面也存在障碍。MySQL系统对权限管理有严格规定,仅允许来自特定域的访问请求,这种机制的具体含义,可通过后续实例进行说明。
原先的数据库尚未迁移,需要先建立可远程访问新服务器的账号,连接至原有数据库后,在用户账号选项中,找到名为root且来源为127.0.0.1的条目,点击其右侧的权限编辑按钮,进入修改页面,将域值127.0.0.1更改为程序服务器A的IP,切记,必须是A的地址,不是B的。完成之后,向下滚动,勾选保留原用户,然后点击确认,系统会提示选择该用户的权限,此时选择全部权限,即可全部选中,点击确认,这样这个管理员账号就能通过你的应用服务器连接到新的服务器了。
搬迁环境和数据库
首先,搬迁数据库之前,你需要了解一下,你都要搬迁哪些东西。
迁移数据之前,新服务器必须可以正常运作,不论数据是否已迁移,数据库环境都要能使用。如果环境无法启动,迁移数据就失去了作用。如果像我所做的那样,数据库所有内容都存放在/usr/local/mysql中,那就简单,需要将以下三个文件迁移到新服务器上。
在某个特定目录下,比如这个路径,如果将程序代码和数据文件,以及运行时产生的信息分开存放,那么后续操作会变得相当复杂,需要将所有相关组件迁移到新位置,同时也要注意这个目录,它是存放系统配置文件的,可能被命名为其他名称,还要关注这个目录,里面包含了系统启动和管理的脚本,也可能有其他的命名方式
上面这些全部通过scp命令复制到B上面去。
其次,让跑起来。
数据库本质上等同于文件,这个说法虽然对,但程序并不仅仅是文件,要让程序运行,还需要借助其他一些软件。在所有搬迁工作结束后,首要任务是将加载
启动服务管理器增加mysqld服务,设置mysqld服务为开机自启状态
这样就可以使用 start来启动了。
此刻,你若去执行 start,绝大多数时候会被告知数据库启动未能成功。缘何会这样呢?由于它的运作,有赖于若干其他程序,务必先把这些程序安装妥当,它才能顺利开启。然而,究竟欠缺了哪些程序呢?在《.1.9二进制安装实操》一篇文章中,我具体说明了如何运用二进制方式来安装,其中包含了一个环节,就是借助.// --user=mysql来安装初始软件和数据库,这个工具是专门用于初始设置的,在正式环境中通常都会被移除,否则一旦被误执行,你的数据库就会完全丢失,但现阶段我们又要利用它来提供辅助。
不过再运行之前,需要先把data目录备份一下:
进入/usr/local/mysql目录,将mysql用户设置为该目录及其子目录的拥有者,确保my.cnf文件中指定的mysql服务运行用户拥有对文件的写入权限,然后备份data目录到data.bak目录./scripts/mysql_install_db --user=mysql
通常情况下,你的这次操作都会不成功,提示内容会说明具体需要安装哪些程序。需要持续进行这个操作,把所有程序都安装完毕,直至运行结果变为正常。
确认无误后,会生成一个data文件夹,这个文件夹我们之前已经接触过。现在我们直接将这个文件夹移除,将先前备份的文件夹恢复原名:
rm -rf datamv data.bak data
现在再通过 start 启动数据库试试吧。
数据库服务器的防护
系统开始运作后,值得庆贺,该台机器已经转变为一个独立的mysql服务器在运作,借助先前获得的root账号,能够从A服务器接入B服务器的mysql数据库。
可以说,当前B系统上部署的mysql服务,与先前A系统上的完全一致,包括数据库配置、用户账户(root)等信息,没有任何区别。出于安全考量,务必查阅《局域网环境下访问其他服务器上的mysql、redis数据库》中涉及防火墙设置的内容。此外,建议使用一个权限相对较低的账户执行远程连接操作。
程序端的修改
数据库服务器启动之后,就需要调整程序设置。如果原先通过root登录,那么直接在程序里把数据库连接地址改成B的IP就行。但如果之前创建了别的数据库账号,那么现在可以在B上新建一些能远程连接的用户,同时在程序里更新对应的数据库连接信息。
通过服务器上的程序来控制B端的mysql数据库,关键在于调整源码文件.inc.php中的内容,将其中的IP地址更换为B端的实际地址。更换完成后,系统会利用新的地址来访问数据库,登录时必须采用先前提及的具备远程访问权限的用户账号。
现在程序服务器和数据库服务器已经分开了,程序服务器的负担会立刻减轻不少,甚至可能会出现内存闲置的状况,以后可以慢慢通过加装一些图片编辑工具或者消息队列管理工具来填补这个空缺。不过不管怎样,现在可以关闭A服务器上的mysql服务了,因为数据库已经在B上运行了。
扫一扫在手机端查看
- 上一篇:php mariadb https Let's Encrypt安装教程_从零开始搭建网站环境(php-yaf nginx mariadb)番外篇———开启https
- 下一篇:帝国CMS仿制网站_帝国cms全站黑白 帝国cms视频教程
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。


客服1