1.搭建環(huán)境
服務(wù)器 | 角色 | 說明 |
---|---|---|
192.168.137.139 | 集群管理服務(wù)器 | 系統(tǒng):contos |
192.168.137.129 | 數(shù)據(jù)節(jié)點+sql節(jié)點 | 系統(tǒng):contos |
192.168.137.130 | 數(shù)據(jù)節(jié)點+sql節(jié)點 | 系統(tǒng):contos |
下載集群使用的包
1.百度到mysql官網(wǎng) 放钦,點擊DOWNLOANS
2.點擊社區(qū)下載
3.選擇mysql集群
4.選擇需要的版本下載
我使用的MySQL集群版本:
mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz
2.搭建管理服務(wù)器
1.安裝mysql
把剛下載的包上傳至/usr/local下,并解壓重命名
tar -zxvf mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64 mysql
進入改好名的mysql目錄,安裝mysql
#cd mysql
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
可能有些小伙伴會報錯:壞的解釋器啥的
解決辦法:
yum -y install perl perl-devel
yum install -y perl-Data-Dumper
2.配置集群文件
cd /var/lib
mkdir mysql-cluster
cd mysql-cluster
vi config.ini
進入config.ini做如下配置
[NDBD DEFAULT]
NoOfReplicas=2
[NDB_MGMD]
nodeid=1
HostName=192.168.137.139
DataDir=/var/lib/mysql-cluster
[NDBD]
nodeid=2
HostName=192.168.137.129
DataDir=/usr/local/mysql/data
[NDBD]
nodeid=3
HostName=192.168.137.130
DataDir=/usr/local/mysql/data
[MYSQLD]
nodeid=4
HostName=192.168.137.129
[MYSQLD]
nodeid=5
HostName=192.168.137.130
[MYSQLD]
nodeid=6
[mysqld]
nodeid=7
3.啟動服務(wù)器
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
出現(xiàn)以下狀況就說明啟動正常
4.編輯/etc/my.cnf文件
# vi /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
ndbcluster
ndb-connectstring=192.168.137.139
[mysql_cluster]
ndb-connectstring=192.168.137.139
#不要有多余的配置
3.搭建數(shù)據(jù)節(jié)點+sql節(jié)點
1.按照以上步驟按照mysql叼旋,配置集群文件
2.配置節(jié)點文件
編輯/etc/my.cnf文件
# vi /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock
user=mysql
ndbcluster
ndb-connectstring=192.168.137.139
[mysql_cluster]
ndb-connectstring=192.168.137.139
3.啟動數(shù)據(jù)節(jié)點
/usr/local/mysql/bin/ndbd --initial
4.注意有的小伙伴可能因為防火墻原因啟動不成功,需要在管理服務(wù)器上開啟1186端口哦寒亥!
5.可能出現(xiàn) ERROR -- Could not determine which nodeid to use for this node. Specify it with --ndb-nodeid=<nodeid> on command line 這樣的原因是因為在從節(jié)點上試圖啟動管理服務(wù)--只用開啟數(shù)據(jù)節(jié)點和sql節(jié)點
6.啟動sql節(jié)點
復(fù)制mysqld到系統(tǒng)服務(wù)里面去
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
啟動sql節(jié)點
service mysqld start
可能會出現(xiàn) ERROR! The server quit without updating PID file (/usr/local/mysql/data/centos129.pid).這樣的錯誤
解決辦法
啟動成功標識
修改數(shù)據(jù)庫密碼
/usr/local/mysql/bin/mysqladmin -u root password 'password'
出現(xiàn)
connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists
使用
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
另外一個節(jié)點一模一樣的搭建
4.常見命令操作
1) ndb_mgmd管理命令:/usr/local/mysql/bin/ndb_mgm 執(zhí)行之后就是管理控制臺了昂拂,里面可以繼續(xù)輸入命令
ndb_mgm> show
Connected to Management Server at: 192.168.137.139:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.137.129 (mysql-5.6.19 ndb-7.3.6, Nodegroup: 0, *)
id=3 @192.168.137.130 (mysql-5.6.19 ndb-7.3.6, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.137.139 (mysql-5.6.19 ndb-7.3.6)
[mysqld(API)] 4 node(s)
id=4 @192.168.137.129 (mysql-5.6.19 ndb-7.3.6)
id=5 @192.168.137.130 (mysql-5.6.19 ndb-7.3.6)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)
這就表示成功
2) 停止集群服務(wù)器的命令:/usr/local/mysql/bin/ndb_mgm -e shutdown
如果集群配置有更新了:rm /usr/local/mysql/mysql-cluster/ndb_1_config.bin.1
3) 停止SQL節(jié)點的命令:/usr/local/mysql/bin/mysqladmin -uroot shutdown
4)使用需要注意如下兩點:
a.表必須用ENGINE=NDB或ENGINE=NDBCLUSTER選項創(chuàng)建单默,或用ALTER TABLE選項更改,以使用NDB Cluster存儲引擎在 Cluster內(nèi)復(fù)制它們茎匠。如果使用mysqldump的輸出從已有數(shù)據(jù)庫導(dǎo)入表格仲,可在文本編輯器中打開SQL腳本,并將該選項添加到任何表創(chuàng)建語句诵冒,或 用這類選項之一替換任何已有的ENGINE(或TYPE)選項凯肋。
b.另外還請記住,每個NDB表必須有一個主鍵汽馋。如果在創(chuàng)建表時用戶未定義主鍵侮东,NDB Cluster存儲引擎將自動生成隱含的主鍵圈盔。(注釋:該隱含 鍵也將占用空間,就像任何其他的表索引一樣苗桂。由于沒有足夠的內(nèi)存來容納這些自動創(chuàng)建的鍵药磺,出現(xiàn)問題并不罕見)。
5.使用sqlyog連接報錯
1.開啟129-130 3306的端口
2.進入命令行
/usr/local/mysql/bin/mysql -uroot -p
密碼 修改過就是 password 沒修改就是沒有空
use mysql;
update user set host = '%' where user = 'root'; -- 報錯不用管
flush privileges;
注意兩臺sql節(jié)點主機都需要修改煤伟。
在使用sqlyog就能連接上了