Home  >  Article  >  Database  >  运行多个MYSQL服务器

运行多个MYSQL服务器

WBOY
WBOYOriginal
2016-06-07 16:05:27832browse

大多数人们都在指定的机器上运行单个MySQL服务器,但在有些情况下,运行多个服务器是有好处的:您可以在成品服务器运行的状态下测试新版本的服务器。在这种情况下,将运行不同的服务器。 操作系统通常将总进程限制施加于打开文件的描述符数量上。如果系统提

大多数人们都在指定的机器上运行单个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)将被使用。


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn