运行多个MYSQL服务器

2008-02-23 07:43:30来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

大多数人们都在指定的机器上运行单个MySQL服务器,但在有些情况下,运行多个服务器是有好处的: 您能够在成品服务器运行的状态下测试新版本的服务器。在这种情况下,将运行不同的服务器。

操作系统通常将总进程限制施加于打开文档的描述符数量上。假如系统提高该限制值有困难,则运行多个服务器是解决该限制的办法(例如,提高限制可能需要重新编译该内核,并且,假如该机器不是您的管辖范围,可能还不能这样做)。在这种情况中,您可能会运行相同服务器的多个实例。

互连网服务经常提供给顾客他们自己的MySQL安装程式,他需要单独的服务器。在这种情况下,您可能会运行相同服务器或不同服务器的多个实例,假如不同的顾客需要不同MySQL版本的话。

当然,同时运行几个服务器比只运行一个更复杂。假如您打算安装多个版本,则不能将他们都安装在相同的位置。当服务器运行时,某些参数对于每个服务器必须是唯一的。其中有些参数包括在服务器安装的地方:数据目录的路径名、TCP/IP 端口和UNIX 域的套接字路径名,连同用于运行多个服务器的UNIX 账号(假如不在相同的账号下运行任何的服务器的话)。假如决定运行多个服务器,则必须保持对正在使用的参数有良好说明,以便不失去对运行的跟踪。

配置和安装多个服务器

假如打算运行不同版本的服务器而非相同服务器的多个实例,应该在不同的位置安装他们。假如安装二进制(不是R P M)分发包,他们将在包含版本号的目录名下被安装。假如从源程式分发包中安装,使不同的分发包分开的最容易的办法是,当在每个版本的MySQL安装过程中运行configure 时使用--with-prefix 选项。这将导致在单独的目录下进行安装,并且能够连接该目录到该分发包的版本号上。例如,您能够按如下配置一个MySQL分发包,这里的version 是MySQL的版本号:

% ./configure ..with-prefix=/usr/local/mysql-version

with-prefix 选项还将确定服务器的唯一数据目录。您可能会增加选项来配置其他的服务器专有的值,如TCP/IP 端口和套接字路径名( --with-tcp-port 和- - w i t h - un i x - s o c k e t)。

假如打算运行相同服务器的多个实例,则服务器专用的任何选项将需要在运行时指定。

多个服务器的启动过程

启动多个服务器比使用单个服务器复杂,因为safe_mysqld 和mysql.server 二者均在单个服务器上工作良好。笔者建议您仔细研究safe_mysqld 并用他作为启动过程的基础,除非您使用按自己的需求修改得更精细的拷贝。

必须处理的一个问题是如何在选项文档中指定选项。对于多个服务器,不能对在总服务器基础上变化了的配置使用/ e t c / my.cnf,只能为任何服务器都相同的配置使用该文档。假如每个服务器都有不同的数据目录位置,能够在每个服务器数据目录的my.cnf 文档中指定服务器专有的参数。换句话说,应为任何服务器都使用的配置使用/ e t c / my.cnf,并且为服务器专有的配置使用DATA D I R/ my.cnf,这里的DATADIR 随每个服务器变化。

指定服务器选项的另一种方法是:使用- - d e f a ul t s - f i l e =p a t h _ name 作为该命令行的第一个选项,以便告诉服务器从path_name 指定的文档中读取选项。这样,能够将该文档中的服务器选项唯一地放置到那个服务器中,然后告诉服务器在启动时读取该文档。请注意,假如指定该选项,则没有任何通常的选项文档(如/ e t c / my.cnf)将被使用。


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: mysql操作blob经验谈

下一篇: 数据库安全问题:推理