mysql集群安装
mysql cluster (mysql 集群)安裝配置方案
一、準備
1、準備服務器
計劃建立有5個節點的MySQL CLuster體系,需要用到5臺服務器,但是我們做實驗時沒有這么多機器,可以只用2臺,我就是一臺本機,一臺虛擬機搭建了有5個節點的MySQL CLuster體系,將一個SQL節點一個數據節點一個SQL節點放在了一臺服務器上(192.168.1.252),將另一個SQL節點和一個數據節點放在了另外一臺服務器上(192.168.1.52)。
節點配置說明
節點 對應的IP和端口
管理節點(1個) 192.168.1.252
SQL節點 (2個) 192.168.1.252:3331
192.168.1.52:3331
數據節點 (2個) 192.168.1.252
192.168.1.52
2、準備軟件包
現在的mysql提供了一個專門作集群的安裝包,這樣就不用一個個的下載所需要的工具了。我在網上找到了最新的而且下載比較快的資源,第一步先是下載,有200M左右。
cd /var/tmp
wget http://mysql.ntu.edu.tw/Downloads/MySQL-Cluster-7.1/ ?
mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
二、安裝
1、數據節點和SQL節點
第一步 添加mysql用戶和組,這是必需的。
groupadd mysql
useradd -g mysql mysql
第二步 開始安裝,下載的版本是免編譯的,復制過來就可以用了。
cd /var/tmp
tar -C /usr/local-zxvf mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz
cd /usr/local
mv mysql-cluster-gpl-7.1.9a-linux-i686-glibc23.tar.gz mysql
第三步 在mysql修改目錄權限,這也是必需的,不然第四步會報錯的。
cd mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
第四步 安裝初始的數據庫表
scripts/mysql_install_db --user=mysql
第五步 設置mysql服務為開機自啟動
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
第六步 啟動mysql服務,如果報錯請參考
service mysqld start
這六步,在252和52服務器上都執行一次,數據節點和SQL節點就算安裝好了。
2、管理節點
管理節點的安裝更簡單,只要在252服務器上復制些文件出來就行了,雖然只有一步,便這一步在目前環境下(管理節點和SQL節點在同一臺服務器上)也不是必需的。
cd mysql
cp bin/ndb_mgm*/usr/local/bin
cd /usr/local/bin
chmod +x ndb_mgm*
管理節點只要ndb_mgm和ndb_mgmd兩個文件和一個配置文件即可,因此把這三個文件復制到那里,那里就是管理節點了。ndb_mgmd是mysql cluster管理服務器,ndb_mgm是客戶端管理工具,等一下會用到它們的。到目前為止兩個SQL節點兩個數據節點和一個管理節點都安裝完成了,但是還不能工作,得進行配置,把這幾個節點聯系在一起協同工作。
三、配置
1、數據節點和SQL節點
mysql服務啟動時會默認加載/etc/my.cnf作為其配置文件,要將一個mysql服務器配置成一個數據節點和SQL節點也非常的簡單,這是配置前的my.cnf的內容:
[client]
port ? ?=3306
socket ?=/tmp/mysql.sock
[mysqld]
basedir ? ? ? ? =/usr/local/mysql/
datadir ? ? ? ? =/usr/local/mysql/data
user ? ? ? ? ? ?= mysql
log-error ? ? ? =/var/lib/mysql/mysqld.err
?
只要在內容結尾加上4行就將這個mysql服務器變成了一個數據節點和SQL節點。
ndbcluster ? #運行NDB存儲引擎
#指定管理節點 ?以上兩行聲明其為SQL節點
ndb-connectstring=192.168.1.252 ??
[mysql_cluster]
#指定管理節點 ?以上兩行聲明其為數據節點
ndb-connectstring=192.168.1.252 ??
注意兩臺服務器都得這樣配置。
2、管理節點
管理節點的配置復雜一點,在管理服務器252的/var/lib/mysql-cluster/目錄中創建config.ini文件。
cd /var/lib
mkdir mysql-cluster
cd mysql-cluster
vim config.ini
在config.ini文件中添加以下內容:
[NDBD DEFAULT]
NoOfReplicas=1 ? ?#每個數據節點的鏡像數量
DataMemory=500M ? #每個數據節點中給數據分配的內存
IndexMemory=300M ?#每個數據節點中給索引分配的內存
[TCP DEFAULT]
portnumber=2202 ? #數據節點的默認連接端口
[NDB_MGMD] ? ? ? ?#配置管理節點
hostname=192.168.1.252
datadir=/var/lib/mysql-cluster/ ?#管理節點數據(日志)目錄
[NDBD] ? ? ? ? ? ?#數據節點配置
hostname=192.168.1.252
datadir=/usr/local/mysql/data/ ? #數據節點目錄
[NDBD]
hostname=192.168.1.52
datadir=/usr/local/mysql/data/
[MYSQLD] ? #SQL節點目錄
hostname=192.168.1.252
[MYSQLD]
hostname=192.168.1.52
[NDBD DEFAULT]:表示每個數據節點的默認配置在每個節點的[NDBD]中不用再寫這些選項,只能有一個。
[NDB_MGMD]:表示管理節點的配置,只有一個。
[NDBD]:表示每個數據節點的配置,可以有多個。
[MYSQLD]:表示SQL節點的配置,可以有多個,分別寫上不同SQL節點的IP地址,也可以什么都不寫,只保留一個空節點,表示任意一個IP地址都可以進行訪問,此節點的個數表明了可以用來連接數據節點的SQL節點總數。
四、啟動
1、管理節點
mysql cluster 需要各個節點都 進行啟動后才可以工作,節點的啟動順序為管理節點->數據節點->SQL節點。首先啟動管理節點
cd /usr/local/bin
./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
命令行中的ndb_mgmd是mysql cluster的管理服務器,后面的-f表示后面的參數是啟動的參數配置文件。如果在啟動后過了幾天又添加了一個數據節點,這時修改了配置文件啟動時就必須加上--initial參數,不然添加的節點不會作用在mysql cluster中。
./ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
啟動時可能會報個WARNING,如WARNING ?-- at line 7: [TCP] portnumber is deprecated,這個不用管??梢哉9ぷ鞯摹?
2、數據節點
安裝后第一次啟動數據節點時要加上--initial參數,其它時候不要加,除非是在備份、恢復或配置變化后重啟時。
cd mysql/bin/ndbd --initial?
如果顯示以下信息說明啟動完成:
2010-12-31 12:48:03 [ndbd] INFO ? ? -- Angel connected to '192.168.1.252:1186'
2010-12-31 12:48:03 [ndbd] INFO ? ? -- Angel allocated nodeid: 3
3、SQL節點
service mysqld start
4、客戶端管理
cd /usr/local/bin
./ndb_mgm
這時就進入到客戶端,可以對mysql cluster進行各項操作,進入后會有ndb_mgm > 提示符出現,首先來查看各節點的連接情況,在ndb_mgm> 提示符下輸入show:
ndb_mgm> show
ClusterConfiguration
---------------------
[ndbd(NDB)] ? ? 2 node(s)
id=2 ? ?@192.168.1.252 ?(mysql-5.1.51 ndb-7.1.9,Nodegroup:0,Master)
id=3 ? ?@192.168.1.52 ?(mysql-5.1.51 ndb-7.1.9,Nodegroup:1)
[ndb_mgmd(MGM)]1 node(s)
id=1 ? ?@192.168.1.252 ?(mysql-5.1.51 ndb-7.1.9)
[mysqld(API)] ? 2 node(s)
id=4 ? ?@192.168.1.252 ?(mysql-5.1.51 ndb-7.1.9)
id=5 ? ?@192.168.1.52 ?(mysql-5.1.51 ndb-7.1.9)
可以看到各個節點已經連接上了,至此,mysql cluster配置完成。
五、關閉
mysql cluster的關閉也很簡單,只需在ndb_mgm> 提示符下輸入 shutdown即可,這時會顯示各節點的關閉信息,再輸入exit即可退出ndb_mgm管理,回到shell中。雖然mysql cluster 關閉了,但是SQL節點的mysql服務并不會停止的。接下來就可以做各種試驗了。
========
mysql-cluster集群-安裝篇
本文主要介紹Mysql-Cluster的安裝,首先先簡單了解一下:(linux用戶,本人 debian)
MySQL Cluster 是一種技術,該技術允許在無共享的系統中部署“內存中”數據庫的 Cluster 。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由于每個組件有自己的內存和磁盤,不存在單點故障。
一、簡介
Mysql-cluster分為:
1. 管理節點:管理MySQL Cluster內的其他節點,如提供配置數據、啟動并停止節點、運行備份等
2. 數據節點:用于保存 Cluster的數據
3. Sql節點:用來訪問 Cluster數據的節點
二、安裝
此安裝為1個管理節點,2個數據節點,2個sql節點,安裝在兩臺機器,一臺機器:管理節點,數據節點,sql節點,另一臺:數據節點,sql節點
節點名稱
IP
管理節點
192.168.1.111
數據節點1
192.168.1.111
數據節點2
192.168.1.112
Sql節點1
192.168.1.111
Sql節點2
192.168.1.112
三、安裝步驟
1. 為mysqld增加一個登陸用戶組,兩臺服務器都需要
# groupadd mysql
# useradd –g mysqlmysql
?
2. 安裝管理節點
# tar zxvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz
# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64/*/opt/mysql –r
創建mysql-cluster目錄,并配置config.ini
# mkdir/apps/mysql/mysql-cluster
# cd/apps/mysql/mysql-cluster
# vi config.ini
內容如下:
[ndbddefault]
NoOfReplicas=2 (代表sql節點的數量)
DataMemory=500M
indexMemory=300M
[tcpdefault]
SendBufferMemory=2M
ReceiveBufferMemory=2M
[ndb_mgmddefault]
PortNumber=1186
Datadir=/apps/mysql/mysql-cluster
[ndb_mgmd]
NodeId=1
HostName=192.168.1.111
[ndbd]
NodeId=2
HostName=192.168.1.111
DataDir=/apps/mysql/data
[ndbd]
NodeId=2
HostName=192.168.1.112
DataDir=/apps/mysql/data
[mysqld]
NodeId=3
Hostname=192.168.1.111
[mysqld]
NodeId=3
Hostname=192.168.1.112
?
3. 安裝數據節點
Vi /etc/my.cnf
如下:
[mysqld]
datadir=/opt/mysql/ndbdata
port =3306
?
ndbcluster #數據節點(因為在一臺機器所以合并)
ndb-connectstring=192.168.1.111
port =3307
[mysql_cluster]
ndb-connectstring = 192.168.1.111
?
4. 安裝sql節點
Vi /etc/my.cnf
如下:
[mysqld]
datadir=/opt/mysql/ndbdata
port =3306
?
ndbcluster #數據節點(因為在一臺機器所有合并)
ndb-connectstring=192.168.1.111
port =3307
[mysql_cluster]
ndb-connectstring = 192.168.1.111
?
next:(安裝mysqld)
# cd /opt/mysql
# ./scripts/mysql_install_db –user=mysql (安裝到了 /opt/mysql/ndbdata)
?
5. 開始啟動cluster
開啟順序: 管理節點->數據節點->sql節點
?
管理節點啟動
# cd /opt/mysql
# ./bin/ndb_mgmd –f /apps/mysql/mysql-cluster/config.ini--configdir=/apps/mysql/mysql-cluster/--ndb-nodeid=1
?
數據節點啟動(兩個節點都要啟動,不然sql節點不能啟動)
# cd /opt/mysql
# ./bin/ndbd –-initial –-ndb-connectstring=192.168.1.111:1186
?
Sql節點啟動
# cd /opt/mysql/ndbdata
# ../bin/mysqld_safe –user=mysql &
?
6. 查看
# cd /opt/mysql/
# ./bin/ndb_mgm –e show
Connectedto Management Server at: 192.168.1.111:1186
ClusterConfiguration
---------------------
[ndbd(NDB)] 1 node(s)
id=2 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)
id=3 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.111 (mysql-5.6.21 ndb-7.3.7)
[mysqld(API)] 1 node(s)
id=4 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)
id=5 @192.168.1.112 (mysql-5.6.21 ndb-7.3.7)
說明已經成功
7. 問題
Q: sql節點無法啟動“Tablesnot available after 30 seconds. Considerincreasing --ndb-wait-setup value”
A: 數據節點沒有全部啟動
Q: sql節點啟動時: “Unable to lock./ibdata1, error: 11”
A: 已經啟動了
Q: 登錄sql時:mysql –u root-p
1045 access denied for user 'root'@'localhost' using password yes
A: 直接 mysql –u root (需要修改配置文件)
========
鏈接
http://blog.csdn.net/bigtree_3721/article/details/51335734 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 图解Detours实例
- 下一篇: 虚拟机+CentOS内核hack7、8、