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

MYSQL
MySQL 5.0默认100连接数的修改
如何使用"MySQL-Proxy"实现读写分离
phpMyAdmin下载、安装和使用入门
安装phpMyAdmin数据库管理软件
关于Mysql数据库导致CPU很高的问题解决
Mysql数据库的导入导出 和 Liunx的权限
MySQL InnoDB存储引擎的一些参数
MySQL InnoDB存储引擎的事务隔离级别
MySQL中InnoDB和MyISAM类型的差别
如何在.NET中访问MySQL数据库
关于 mysql5 改密码后不能登录问题的解答
初学者必读 MySQL 数据库常见问题汇总
MySQL字符集:怎样才能保证不发生乱码
详细讲解优化MySQL数据库性能的十个参数
教你使用MySQL触发器自动更新memcache
SQL存储过程和触发不能使用USE的应对方法
MySQL怎样处理一个溢出的磁盘
MySQL出错代码含义列表解释一表通
服务器安装MySQL教程及注意事项
完美解决mysql中文乱码的问题

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


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