Home > Database > Mysql Tutorial > MYSQL教程:运行多个MySQL服务器_MySQL

MYSQL教程:运行多个MySQL服务器_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-01 13:58:59
Original
885 people have browsed it

     需运行多个服务器的原因有很多,比如上面提到的可绕过最大文件描述符的限制,还有是进行版本测试和提供专用服务等。

运行多个服务器比运行单个服务器复杂很多,需注意以下问题:

在安装不同版本的程序时,需分开目录存放程序和数据目录。如果同一版本的服务器软件,则程序目录可一样,但数据目录则要不同。可用--basedir=dir_name和--datadir=dir_name两个启动选项指时这两个目录。

要为不同的服务器指定不时的--port=port_name(TCP/IP监听端口),--socket=file_name(套接字文件名)和--pid-file=file_name(进程ID文件)值。

如果激活了日志功能,就要为不同的服务器指定不同的日志文件名。

在Windows平台上,被安装为服务的多个MySQL服务器必须有不同的服务名。

多服务器环境下选项文件的配置方法:

使用--defaults-file选项指定每个选项文件,这样,每个服务器就不会去读/etc/my.cnf这些配置文件,而会使用你所指定的配置文件。

可把一些公共的选项放到/etc/my.cnf文件里,再用--defaults-extra-file选项指出特定服务器的特定选项文件。这样就不用在所有的配置文件时重复公共的选项。

用mysql_multi脚本启动服务器,它允许我们把所有的选项放到同一个选项文件里。每一个服务器对应该文件中的一个选项组。

下面介绍用mysql_multi脚本启动多服务器的方法。

为每个服务器编一个编号xxx,对应选项文件的[mysqldxxx]选项组。mysql_multi本身要用到的选项可放到[mysqld_multi]里。这样/etc/my.cnf选项配置文件看起来就象下面这样:

[mysqld001]
basedir=/usr/local/mysql/001
datadir=/usr/local/mysql/001/data
mysqld=/usr/local/mysql/001/bin/mysqld_safe
socket=/usr/local/mysql/001/mysql.sock
port=3306
local-infile=1
user=mysqladm
log=log
log-update=update-log
innodb_data_file_path=ibdata1:10M

[mysqld002]
basedir=/usr/local/mysql/002
datadir=/usr/local/mysql/002/data
mysqld=/usr/local/mysql/002/bin/mysqld_safe
socket=/usr/local/mysql/002/mysql.sock
port=3307
local-infile=1
user=mysqladm
log=log
log-update=update-log
innodb_data_file_path=ibdata1:10M

...
配置好选项文件后,就可用以下命令启动服务器:

% mysqld_multi --no-log start 001,002     
#启动001和002两个服务器,并把启动信息发送到控制台,也可用区间的形式给出服务器编号
用以下命令可查看服务器状态:

% mysqld_multi --no-log --user=root --password=password report 001
可用以下命令停止MySQL服务器:

% mysqld_multi --no-log --user=root --password=password stop 001
在windows平台下运行多个MySQL服务器的方式有两种,一种是运行同一个MySQL程序的两个实例,一种是运行多个windows服务,下面分别介绍:

第一种情况需设置两个选项文件,指定不同的数据目录,如:

c:/mysql/my.cnf1

[mysqld]
basedir=c:/mysql
datedir=c:/mysql/data1
port=3306

c:/mysql/my.cnf2

[mysqld]
basedir=c:/mysql
datadir=c:/mysql/data2
port=3307
在启动服务器时,用--defaults-file选项指出选项文件即可。如:

c:/> mysqld --defaults-file=c:/mysql/my.cnf1
c:/> mysqld --defaults-file=c:/mysql/my.cnf2
在MySQL 4.0.2版本开始,可以把MySQL安装为一个服务,并可指定一个服务名,如:

c:/> mysql-nt --install service_name
在MySQL 4.0.3开始,安装服务还支持--defaults-file=file_name选项
这样,我们就可把MySQL安装为一系列不同的服务,如果不指定service_name,则安装的服务名默认为MySql,如果指定service_name,则安装的服务名为指定的service_name,并对应选项文件中的[service_name]选项组。以默认服务名运行的服务器还支持一个名为MySql的命名管道,而明确给出服务名的服务器将只监听TCP/IP连接而不支持命名管道--除非还用socket选项明确指定一个套接字文件。

移除服务需先用mysqladmin shutdown命令停掉服务器,再执行以下命令:

c:/> mysql-nt --remove                 #移除默认的服务
c:/> mysql-nt --remove service_name    #移除指定服务

Related labels:
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template