当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MYSQL教程:运行多个MySQL服务器

MYSQL
MySQL忘记密码恢复密码的实现方法
mysql 时间转换函数的使用方法
使用mysql的disctinct group by查询不重复记录
mysql备份恢复mysqldump.exe几个常用用例
超详细mysql left join,right join,inner join用法分析
mysql 5.0.67最新版替代MySQL 5.0.51b版本官方下载
比较详细的MySQL字段类型说明
mysql 记录不存在时插入 记录存在则更新的实现方法
MYSQL基础之连接MYSQL、修改密码、添加用户
mysql数据库优化必会的几个参数中文解释
mysql中文排序注意事项与实现方法
MySQL 5.0触发器参考教程
MySQL5创建存储过程的示例
MYSQL5 masterslave数据同步配置方法
mysql数据库导出xml的实现方法
MySql增加用户、授权、修改密码等语句
Mysql默认设置的危险性分析
用MySQL创建数据库和数据库表代码
Mysql如何避免全表扫描的方法
mysql的校对规则引起的问题分析

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 61 ::
收藏到网摘: n/a

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

本文由软晨学习网(http://www.ruanchen.com)整理发布!转载请注明出处!

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

  • 在安装不同版本的程序时,需分开目录存放程序和数据目录。如果同一版本的服务器软件,则程序目录可一样,但数据目录则要不同。可用--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脚本启动多服务器的方法。

    1. 为每个服务器编一个编号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
      ...
      
    2. 配置好选项文件后,就可用以下命令启动服务器:

      % 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 #移除指定服务