程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> MYSQL教程:運行多個MySQL服務器

MYSQL教程:運行多個MySQL服務器

編輯:更多數據庫知識

需運行多個服務器的原因有很多,比如上面提到的可繞過最大文件描述符的限制,還有是進行版本測試和提供專用服務等。

本文由網頁教學網(http://www.webjx.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    #移除指定服務
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved