MySQL多執行個體配置(兩)

來源:互聯網
上載者:User

標籤:

    MySQL操作和維護一個集中的資料庫的。它可以由一個單一的執行MySQL在資料庫伺服器,部署多MySQL樣本。這個功能是由mysqld_multi實現。mysqld_multimysqld的服務進程。這些mysqld服務進程程式能夠用不同的socket或是監聽於不同的連接埠,同一時候將資料檔案分布到不同的磁碟以分散IO。

mysqld_multi提供簡單的命令用於啟動。關閉和報告所管理的伺服器的狀態。從而降低生產環境的維護成本。方便興許的遷移和清理等工作,藉助多執行個體綁定的方式提高伺服器的總體資源使用率.對於多執行個體的配置有2種方式,一種是在my.cnf為全部執行個體提供配置,一種是使用每個執行個體一個設定檔。

本文主要描寫敘述另外一種方式。


  第一種多執行個體配置方式請參考:MySQL多執行個體配置(一)
  有關MySQL單一實例的安裝請參考:Linux 下MySQL原始碼安裝完整版
  

1、各資料庫多執行個體的差異
  MSSQL
    MSSQL中的執行個體指的是一個SQL server伺服器上僅有一個預設執行個體。預設執行個體名即為機器名ServerName(或IP)。
       假設在同一台機器上再安裝SQL server,我們能夠對執行個體命名如ServerName/InstanceName。


       即一台SQL server伺服器上能夠存在多個不同的執行個體。一個執行個體下能夠存在多個不同的資料庫。
       對於不同執行個體下的資料庫的訪問,使用ServerName/InstanceName:PortNo就可以實現訪問,預設執行個體為ServerName:PortNo。
       對不同的執行個體配置IP地址,相關的訪問協議。連接埠等等。
       執行個體的可訪問性須要啟動該執行個體相應的相關服務。

此處須要注意的是執行個體名和執行個體的服務名並非同樣的。
       預設的執行個體的服務名為MSSQLSERVER。而具名執行個體的服務名為MSSQL$INSTANCE_NAME。
  
  Oracle 
     一個Oracle Server由一個Oracle執行個體和一個Oracle資料庫組成。即:Oracle Server = Oracle Instance + Oracle Database
     在Oracle的執行個體主要是由SGA。PGA以及一堆的後台進程來組成。此稱之為執行個體。


     一系列物理檔案的集合包含控制檔案、資料檔案、聯機記錄檔、參數檔案、密碼檔案等稱之為資料庫。
     一個執行個體僅僅能訪問一個資料庫,一個資料庫能夠被多個執行個體訪問。
    
  MySQL
     MySQL執行個體的概念與MSSQL差點兒相同。一個MySQL執行個體下能夠存在或訪問N個資料庫。
     不同的執行個體間能夠用不同的連接埠號碼來區分,各個執行個體的資料能夠使用不同的磁碟檔案夾。
     MySQL多執行個體通過mysqld_multi工具來進行管理。

 

2、現有的環境
  mysql安裝路徑: /u01/app/mysql
  mysql資料路徑: /u01/app/mysqldata/data3306
  mysql連接埠號碼: 3306
  mysql  版本號碼:5.6.12 Source distribution
  OS     環境:SUSE Linux Enterprise Server 11 SP3  (x86_64)

 

3、初始化執行個體
  #為新執行個體建立資料檔案夾並賦權
  suse11:~ # mkdir -p /u01/app/mysqldata/data3606  
  suse11:~ # mkdir -p /u01/app/mysqldata/data3706
  suse11:~ # chown mysql:mysql -R /u01/app/mysqldata/data3606
  suse11:~ # chown mysql:mysql -R /u01/app/mysqldata/data3706
  
  #初始化執行個體
  suse11:~ # cd /u01/app/mysql
  suse11:/u01/app/mysql # ./scripts/mysql_install_db --user=mysql --ldata=/u01/app/mysqldata/data3606/
  suse11:/u01/app/mysql # ./scripts/mysql_install_db --user=mysql --ldata=/u01/app/mysqldata/data3706/
  # Author : Leshami
  # Blog   : http://blog.csdn.net/leshami

 

4、配置各執行個體的my.cnf檔案
  # vi /u01/app/mysqldata/data3606/my3606.cnf
  
  [mysqld]
  socket = /tmp/mysql3606.sock 
  port = 3606
  pid-file = /u01/app/mysqldata/data3606/mysql3606.pid
  datadir = /u01/app/mysqldata/data3606
  basedir = /u01/app/mysql
  user = mysql
  server-id=3606
  [client]
  port = 3606
  socket = /tmp/mysql3606.sock 
  
  [mysql]
  no-auto-rehash
  socket = /tmp/mysql3606.sock 
  prompt=\\[email protected]\\h[\\d]> \\
  
  # vi /u01/app/mysqldata/data3706/my3706.cnf
  
  [mysqld]
  socket = /tmp/mysql3706.sock 
  port = 3706
  pid-file = /u01/app/mysqldata/data3706/mysql3706.pid
  datadir = /u01/app/mysqldata/data3706
  basedir = /u01/app/mysql
  user = mysql
  server-id=3706
  [client]
  port = 3706
  socket = /tmp/mysql3706.sock 
  
  [mysql]
  no-auto-rehash
  socket = /tmp/mysql3706.sock
  prompt=\\[email protected]\\h[\\d]> \\
  
  suse11:~ # chown -R mysql:mysql /u01/app/mysqldata/data3606/my3606.cnf
  suse11:~ # chown -R mysql:mysql /u01/app/mysqldata/data3706/my3706.cnf

 

5、啟動關閉多執行個體
  suse11:~ # mysqld_safe --defaults-file=/u01/app/mysqldata/data3606/my3606.cnf &
  suse11:~ # mysqld_safe --defaults-file=/u01/app/mysqldata/data3706/my3706.cnf &  
  suse11:~ # netstat -nltp|grep mysql
  tcp        0      0 :::3606                 :::*                    LISTEN      64277/mysqld       
  tcp        0      0 :::3706                 :::*                    LISTEN      64597/mysqld 
  
  suse11:~ # mysqladmin -uroot password ‘xxx‘ -S /tmp/mysql3606.sock
  suse11:~ # mysqladmin -uroot password ‘xxx‘ -S /tmp/mysql3706.sock
  
  #以下使用通訊端方式串連到執行個體
  suse11:~ # mysql -uroot -pxxx -S /tmp/mysql3606.sock
  [email protected][(none)]>
  
  suse11:~ # mysql -uroot -pxxx -S /tmp/mysql3706.sock
  [email protected][(none)]>
  
  #以下使用TCP方式串連到執行個體
  suse11:~ # mysql -uroot -pxxx -P3606 --protocol=tcp
  [email protected][(none)]> exit
  
  suse11:~ # mysql -uroot -pxxx -P3706 --protocol=tcp
  [email protected][(none)]>
  
  #關閉mysql執行個體
  suse11:~ # mysqladmin -uroot -pxxx -S /tmp/mysql3606.sock shutdown
  suse11:~ # mysqladmin -uroot -pxxx -S /tmp/mysql3706.sock shutdown

著作權聲明:本文博主原創文章。部落格,未經同意不得轉載。

MySQL多執行個體配置(兩)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.