程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Ubuntu 12.04 LTS 構建高可用分布式 MySQL 集群

Ubuntu 12.04 LTS 構建高可用分布式 MySQL 集群

編輯:MySQL綜合教程

本文的英文版本鏈接是 http://www.mrxuri.com/index.php/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html

www.oracle.com

虛擬機群平台     VMware ESXi . LTS (Precise Pangolin) -bit

 /usr/src/mysql-/usr/src/mysql-mgm

完成這一步後,在 MySQL 的官方網站下載最新的安裝源代碼,並解壓軟件包

 http:
 xvfz mysql-cluster-gpl-.-linux-glibc2.-x86_64..gz

進入解壓縮後的文件夾,然後移動二進制文件

cd mysql-cluster-gpl-.-linux-glibc2.- bin/ndb_mgm /usr/ bin/ndb_mgmd /usr/bin

更改目錄的權限,並可以選擇刪除下載的源文件

  /usr/bin/ndb_mg*/usr/ -rf /usr/src/mysql-mgm

接下來,我們創建管理節點配置文件,在 /var/lib/mysql-cluster/ 文件夾中,名字叫做 config.ini ,這個文件夾事先不存在,創建它

 /var/lib/mysql-cluster

在 config.ini 文件創建完成後,使用你喜歡的文本編輯器編輯此文件,內容類似於這樣

====/var/lib/mysql-==.==.=.= /var/lib/mysql-=.=/var/lib/mysql-

所有主機都定義在這個裡,即使我們只安裝第一個。請注意,管理主機節點需要設定 NodeId,而 NDBD 節點不需要設定.
完成這步操作後,可以用下面的命令啟動管理節點

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

完成這步操作後, 你可以通過下面的命令向 init.d 中添加一個條目,以自動啟動程序

  > /etc/init.d/  /etc/init.d/ndb_mgmd

如果一切順利,第二個管理節點上遵循相同的步驟,並使用相同的配置。請不要改變的節點配置文件中的 ID

你可以使用 ndb_mgm 命令來驗證管理節點的運行,(只需要在終端中輸入 ndb_mgm ) ,並通過鍵入 show,啟動配置實用程序。此時 NDBD 節點和 MySQL 節點處於斷開狀態,需要將所有節點配置完成才可以輸出正確的狀態。

3. 數據節點
創建數據節點與創建管理節點的過程是類似的。讓我們開始創建一個 mysql 組,將用戶 mysql 添加到 mysql 組中

-g mysql mysql

進入 /usr/local ,並下載和配置管理節點時使用的相同的壓縮文檔,並解壓

cd /usr/local/
 http:
 xvfz mysql-cluster-gpl-.-linux-glibc2.-x86_64..gz

創建一個名為 mysql 指向解壓的文件夾(這以後將用於DB集群,所以不要刪除它!)的的軟連接。創建完成後,你可以安裝數據庫

 -s mysql-cluster-gpl-.-linux-glibc2.--get  libaio1 libaio-/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

修改文件權限

chown - -R mysql data

與管理節點上一樣,我們希望的 DataBase 引擎自動啟動,因此,我們需要創建 init.d 命令

 support-files/mysql.server /etc/init.d/
  /etc/init.d/mysql.server

最後,復制 bin 文件夾到 /usr/bin 的位置,並創建一個符號鏈接,以保持能夠正確的引用

cd /usr/local/mysql/ * /usr//
 -fr /usr/local/mysql/ -s /usr/bin /usr/local/mysql/bin

MySQL 配置文件目前不存在,所以我們需要自己創建它。該文件位於 /etc/ 中,並命名為 my.cnf 文件。使用你喜歡的文本編輯器,並添加以下幾行

-connectstring=.,.-connectstring=.,.

請注意,這兩個管理節點的地址,使用逗號分隔。如果你只有一個管理節點,只需在列表中刪除第二個。一旦 my.cnf 文件已保存,我們需要創建 MySQL 的數據文件夾

 /var/lib/mysql-cluster

完成這些後,我們需要初始化集群並啟動該服務。只有當你開始第一次的節點,或當在管理節點上的 /var/lib/mysql-cluster/config.ini 文件被更改時,需要做初始化

cd /var/lib/mysql--/etc/init.d/mysql.server start

接下來,通過運行相應的腳本安裝 MySQL

/usr/local/mysql/bin/mysql_secure_installation

最後,我們需要 NDB 自動啟動

  > /etc/init.d/  /etc/init.d/ndbd

好了,我們已經完成了第一個數據節點的配置,按照相同的方法和步驟去完成第二個數據節點的配置

4.驗證與測試

如果一切正常,在管理節點終端中執行命令  ndb_mgm ,然後鍵入 show. 這個時候應該看到的數據庫節點已填充的提示

root@MYSQL-MGM1:~>---------------------=    @.  (mysql-. ndb-., Nodegroup: , *=    @.  (mysql-. ndb-., Nodegroup: =    @.  (mysql-. ndb-.=    @.  (mysql-. ndb-.=    @.  (mysql-. ndb-.=    @.  (mysql-. ndb-.)

如果你能夠看到類似的輸出,去嘗試一些基本的SQL命令。登錄到SQL數據庫,並創建一個新的數據庫,表,以驗證數據同步。請注意,在創建數據庫時,需使用 NDBCLUSTER 存儲引擎。如果使用 InnoDB ,數據將不會在集群節點之間被復制。在使用 NDBCLUSTER 引擎時,會有一些問題,請參閱 MySQL 官方網站

http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-limitations-unsupported.html
http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-limitations-syntax.html

mysql -u root ->>> CREATE TABLE testtable (i INT) ENGINE=> INSERT INTO testtable () VALUES (
> SELECT *+------+
| i    |
+------+
|     |
+------+
 row  set ( sec)

連接到第二個數據庫節點,我們看看,得到了相同的輸出

mysql -u root ->> SELECT *+------+
| i    |
+------+
|     |
+------+
 row  set ( sec)

應該看到相同的輸出。現在,如果你插入一個新條目表,它會被復制回的第一個節點

5. 負載均衡

在這篇文章的最後部分是為 MySQL 集群安裝負載均衡服務器,負載均衡可以使用 mysql-proxy,很容易安裝,當然你也可以使用其他服務

root@mysql-proxy:~# apt-get  mysql--proxy:~#  /etc/mysql--proxy:~# cd /etc/mysql--proxy:/etc/mysql-proxy# nano mysql-proxy.conf

在 mysql-proxy.conf 文件中加入下面幾行

[mysql-= -address = .:-skip-profiling = = -threads = - = /var/run/mysql-- = /var/log/mysql--level =-backend-addresses = .:,.:-lua-script=/usr/lib/mysql-proxy/lua/proxy/balance.lua

對於自動啟動的附加選項創建以下文件 /etc/default/mysql-proxy

ENABLED==

然後,你可以通過調用以下命令啟動 mysql-proxy

/etc/init.d/mysql-proxy start/stop/status

完成後,你應該能夠連接到 MySQL 服務器使用代理地址。記得這個工作,你需要創建一個新的用戶具有特定的子網連接到它。還需要在 my.cnf 文件為 MySQL 服務器添加捆綁地址

SQL用戶不用復制,所以相同的用戶有單獨被添加到所有的數據庫節點。在數據節點登錄到 SQL shell,執行以下命令

CREATE USER @ IDENTIFIED BY * FROM mysql.user;

更改 newuser,IP和密碼,根據你的配置需求。 %作為通配符,從而對整個子網的IP地址的行為,它允許遠程連接到這個數據庫節點。請記得在這個集群中的節點中添加相同的用戶具有相同配置的其他所有數據庫

撰寫本文參考了這篇文章 MySQL NDB Cluster setup on Ubuntu 12.04 LTS, 做了一些改動。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved