MySQL是否应该单独安装


20

我经常听到人们发表诸如“我们的MySQL服务器计算机发生故障”之类的陈述,这给我的印象是他们将一台计算机专用为MySQL服务器(我猜他们只是在安装OS,而在上面仅安装了MySQL)。作为开发人员而不是系统管理员,我习惯于将MySQL与Web服务器和PHP一起作为LAMP堆栈的一部分进行安装。

有人可以向我解释:

  • 在单独的服务器上安装MySQL有什么意义?当我可以在其中添加整个灯架以及其他服务器时,听起来像是在浪费资源。
  • 如果数据库位于单独的计算机上,则需要使用的应用程序如何连接到该数据库?

Answers:


30

当您的应用程序平台和数据库在争夺资源时,通常这首先表明您已准备好使用专用的数据库服务器。

其次,高可用性:建立数据库集群(通常又是负载均衡的Web /应用程序服务器集群)。

我还要说,在分离服务器的过程中,安全性起着很大的作用,因为您可以为每个服务器(例如,具有LAN上的数据库服务器的DMZ网络服务器)具有不同的网络访问策略。

通过网络访问数据库服务器。例如,当您通常为数据库主机指定“ localhost”时,您将指定数据库服务器的主机/ IP地址。注意:通常,您需要修改数据库服务器的配置,以允许在回送接口以外的接口上进行连接/启用侦听。


另外,专用计算机允许适当地调整磁盘配置。当数据保存在RAID 6上时,Web服务器非常高兴。数据库服务器喜欢RAID 1
西蒙·里克特

12

单独的数据库服务器只是良好的可扩展设计的一部分。如果您的流量不是很高并且单个服务器确实足够,那么这无关紧要。

但是在繁忙的服务中,将服务彼此隔离是一件好事。如果有人用DDoS攻击您的Web服务器并使其消耗所有资源,那根本就不会欺负数据库服务器。在共享环境中,可能有多个Web服务器正在使用数据库服务器,因此,如果数据库服务器包含50个不同网站的数据,则由于DDoS导致关闭一个网站要比关闭所有服务器更好。

从sysadmin的角度来看,更明确的是是否有专门命名的专用服务器,例如“ mysql-01.yourcompany.com”和“ webserver-01.yourcompany.com”。当他们收到警报时,他们立即看到正在发生的事情,至少从“确定,数据库有问题”的意义上看。我知道这是一个较弱的论点,因为几个DNS名称可以指向一个服务器,但仍然指向一个服务器。

您的应用程序将连接到远程数据库服务器,而不会出现网络问题。哎呀!您的Web浏览器如何连接到远程服务器?这是魔法!嗯...。更重要的是,您只需在$ programming_language_of_your_choice中提供服务器地址,而不是'localhost'即可。


2
除了Janne的评论之外:sysadmin的观点...如果您遇到性能问题或需要调试应用程序,则在Web服务器和数据库服务器位于单独的计算机上时,可以轻松得多。
HTTP500 2012年


3

LAMP是应用程序堆栈,但不必全部安装在同一主机上。正如其他人出于性能,安全性或可伸缩性的目的指出的那样,这些功能通常未安装在同一主机上。您还可以发现,对于架构某一部分而言最佳的硬件可能不适用于另一部分。

例如,数据库都是关于存储管理的。从磁盘上获取信息的速度越快,那么将其传输到请求者的速度就越快。如果我要与其他几个应用程序堆栈成员(例如Web服务器)共享磁盘子系统,那么我在磁盘驱动器的读写堆共享资源上面临的竞争实际上会阻碍我的性能。同样,在给定主机上的Web服务器和数据库服务器之间分配RAM可能无法提供足够大的资源池来以其最有效的方式运行,从而能够在RAM中缓存尽可能多的信息,而不必访问磁盘就可以了。图片,页面或查询结果集。

在管理上也要提高效率。想象一下,如果您在将MySQL用作通用后端的开源应用程序上运行企业。您是否真的希望每个应用程序都具有数据库服务器的功能?这可能是DBA的噩梦,“好,哪个应用程序使用此DB?” 您将拥有多个版本,多种硬件/软件配置以及多种数据保留策略。您还可能具有非常分散的管理技能。而是将实例合并到针对角色优化的一个物理硬件上,并分配专用资源来管理服务器及其数据。


2

MySQL查询可能会占用大量资源,这可能会降低LAMP服务器的速度。

当您运行一个大型的,复杂的,占用大量资源的网站时,考虑将数据库移至另一台专用服务器是明智的。这样,您将拥有两台服务器,一台专用于Web,另一台专用于数据库处理。这有可能释放资源并加快网站和数据库查询的速度。

Web服务器仅需要连接到数据库服务器地址,而不是localhost进行数据库查询。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.