7. mysql-cluster 叢集,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 (需要修改設定檔)
註:歡迎踴躍提出疑問,共同進步!