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

MYSQL
提高MySQL 查询效率的三个技巧
mysql同步复制搭建方法指南详细步骤
详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
MySQL Replace INTO的使用
mysql 分页优化解析
同时运行多个MySQL服务器的方法
mysql主从服务器同步心得体会
删除mysql数据库中的重复数据记录
mysql忘记密码的解决方法
mysql替换表中的字符串的sql语句
Lost connection to MySQL server during query的解决
mysql出现Error performing load command的解决方法
mysql中的“money”类型说明
mysql常见错误集锦
MYSQL administrator 使用
MYSQL初学者命令行使用指南
MySQL的Query Cache原理分析
linux下改良版本mysqldump来备份MYSQL数据库
mysql删除表中某一字段重复的记录
log引起的mysql不能启动的解决方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 59 ::
收藏到网摘: 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 #移除指定服务