Linux下搭建mysql數(shù)據(jù)庫集群

1.搭建環(huán)境

服務器 角色 說明
192.168.137.139 集群管理服務器 系統(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官網 ,點擊DOWNLOANS

2.點擊社區(qū)下載



3.選擇mysql集群



4.選擇需要的版本下載

我使用的MySQL集群版本:

mysql-cluster-gpl-7.3.6-linux-glibc2.5-x86_64.tar.gz
2.搭建管理服務器

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.啟動服務器

/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.注意有的小伙伴可能因為防火墻原因啟動不成功,需要在管理服務器上開啟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é)點上試圖啟動管理服務--只用開啟數(shù)據(jù)節(jié)點和sql節(jié)點
6.啟動sql節(jié)點
復制mysqld到系統(tǒng)服務里面去

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) 停止集群服務器的命令:/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內復制它們。如果使用mysqldump的輸出從已有數(shù)據(jù)庫導入表,可在文本編輯器中打開SQL腳本,并將該選項添加到任何表創(chuàng)建語句,或 用這類選項之一替換任何已有的ENGINE(或TYPE)選項。

b.另外還請記住,每個NDB表必須有一個主鍵。如果在創(chuàng)建表時用戶未定義主鍵,NDB Cluster存儲引擎將自動生成隱含的主鍵。(注釋:該隱含 鍵也將占用空間,就像任何其他的表索引一樣。由于沒有足夠的內存來容納這些自動創(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就能連接上了


有這個引擎也能表示集群成功,不然就沒有這個
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容