本文主要介紹在centos
6.3系統上搭建mysql cluster
7.2.10
集群的方法。
mysql cluster主要有三種型別節點:
data node
,資料節點
將儲存資料庫,它會自動複製所有的資料節點
;daemon node
,守護節點相當於是sql資料庫和客戶端之間的介面,它提供從資料節點查詢等操作,類似於"閘道器";
management node
,管理節點
,用以監控和管理整個集群
。本文介紹使用2臺伺服器(100與101)部署最簡單的集群
方法:其中100上部署data node
,daemon node
及management node
;101上部署data node
,daemon node。
(2.1-2.3為所有節點均需執行的步驟,2.4和2.5為相關節點需執行的步驟)
,解壓移動至 /usr/local/mysql目錄下
wget
tar -zxv -f mysql-cluster-gpl-7.2.10-linux2.6-x86_64.tar.gz
mv mysql-cluster-gpl-7.2.10-linux2.6-x86_64 /usr/local/mysql
groupadd mysql
useradd mysql -g mysql
cd /usr/local
chown -r mysql:mysql mysql
cd mysql
scripts/mysql_install_db --user=mysql
#建立目錄
mkdir -p /var/lib/mysql-cluster
#修改配置檔案
vim /var/lib/mysql-cluster/config.ini
#config.ini內容如下
[ndbd default]
#noofreplicas表示資料份數,如果為1,會有資料節點單點故障
noofreplicas=2
datamemory=200m
indexmemory=30m
[ndb_mgmd]
id=1
hostname=192.168.85.100
datadir=/var/lib/mysql-cluster/
[ndbd]
id=2
hostname=192.168.85.101
datadir=/usr/local/mysql/data
[ndbd]
id=3
hostname=192.168.85.100
datadir=/usr/local/mysql/data
[mysqld]
id=4
hostname=192.168.85.100
[mysqld]
id=5
hostname=192.168.85.101
[mysqld]
id=6
#拷貝檔案,建立相關目錄
cp support-files/mysql.server /etc/init.d/mysqld
mkdir -p /var/mysql/data
mkdir -p /var/mysql/logs
# 修改配置檔案
vim /etc/my.cnf
#my.cnf內容如下:
[mysqld]
ndbcluster
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
port=3307
ndb-connectstring=192.168.85.100
[mysql_cluster]
ndb-connectstring=192.168.85.100
啟動需要按照如下順序進行:management node > data node > sql node
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
修改生效加 --initial
其他操作:
# 檢視是否有埠號為1186的監聽埠
netstat -lntpu
# 檢視集群狀態
/usr/local/mysql/bin/ndb_mgm -e show
# 管理節點檢驗
/usr/local/mysql/bin/ndb_mgm
# 管理節點關閉
/usr/local/mysql/bin/ndb_mgm -e shutdown
# 只是在第一次啟動或在備份/恢復或配置變化後重啟ndbd時,才加–initial引數!
/usr/local/mysql/bin/ndbd --initial
# 正常啟動方式
/usr/local/mysql/bin/ndbd
service mysqld start
# sql 節點關閉
service mysql stop
# 檢驗mysql是否執行
/etc/rc.d/init.d/mysqld status
# 為sql指定密碼
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h 'host' password 'new-password'
# 啟動命令列視窗
/usr/local/mysql/bin/mysql -u root –p
下面在伺服器上a上新建表並插入資料,在伺服器b上驗證mysql cluster是否將資料同步。
#進入sql監視器,注意後續的命令均已;或\g結尾
/usr/local/mysql/bin/mysql
#檢視資料庫
show databases;
#使用test庫
use test;
#檢視test庫,顯示為空
show test;
#建立person表
create table person(id int,name varchar(40),birthday date)engine=ndb;
#插入資料
insert into person values(1,'kate',19821212);
#檢視表中資料
select * from test.person;
#進入sql監視器
/usr/local/mysql/bin/mysql
#檢視表中資料,可以看到資料已經同步
select * from test.person;
同樣也可在伺服器b上執行insert/update/delete等操作,然後在伺服器a上驗證資料是否同步。
7 2 集合相似度
給定兩個整數集合,它們的相似度定義為 n c n t 100 其中n c 是兩個集合都有的不相等整數的個數,n t 是兩個集合一共有的不相等整數的個數。你的任務就是計算任意一對給定集合的相似度。輸入第一行給出乙個正整數n 50 是集合的個數。隨後n行,每行對應乙個集合。每個集合首先給出乙個正整數m ...
leetcode題集 72 編輯距離
題目大意 給定兩個字串,求解將 word1 轉化成 word2 的最小操作。操作有三個,替換,增加和刪除。題目分析 突然給定乙個這樣的題目,求解有效可能集合中的最優解。第一想法當然就想到了動態規劃,可是怎麼找狀態轉移方程呢?又應該選擇哪個狀態呢?一般能想到兩個,乙個是dp i j 表示長度為 i 的...
No 7 2 並查集演算法
暫時沒看懂,只做記錄,後續再究!一 求有幾個強盜同夥?現在有10個強盜 1與2是同夥 3與4是同夥 5與2是同夥 4與6是同夥 2與6是同夥 8與7是同夥 9與7是同夥 1與6是同夥 2與4是同夥 強盜同夥的同夥,也是同夥。請問共有幾個獨立的強盜同夥?解題思路 1.首先假設10個強盜各不相屬,用一維...