標籤:
1. 前(fei)言(hua)
最近實訓老師給我們布置了一個建立mysql叢集的任務,並扔了兩個部落格連結給我們參考,然後就沒有然後了。根據老師給的部落格上面的步驟試了一下,發現並不能成功建立,於是自己百度,找到了一個挺靠譜的部落格,於是參考了一下,感覺總體還是不錯的~
靠譜的部落格:
http://blog.csdn.net/mazhaojuan/article/details/42211857
2. 理論基礎知識
首先需要瞭解什麼是管理節點、資料節點和SQL節點~
(1)管理結點:從名字可以看出來,這種結點的作用就是管理其他結點的,這個節點可以查看其他資料節點和SQL節點的串連狀態,並可以控制這些的節點重啟。
(2)資料節點:這些節點的作用就是存放資料,每個資料節點都有這個mysql叢集的全部資料(資料冗餘),也就是只要存在一個能運行就可以了~
(3)SQL節點:這些節點向外提供SQL介面,所有資料庫操作都發往這裡,也是只要存在一個能運行就可以~
(ps:本文側重實際操作,理論基礎知識請自行百度學習~)
3. 實際操作過程(博主的作業系統是WIN10~)
以下使用5台電腦來實現mysql叢集(1個管理節點,2個資料節點,2個SQL節點)
管理節點的IP:192.168.1.66
資料節點1的IP:192.168.1.50
資料節點2的IP:192.168.1.53
SQL節點1的IP:192.168.1.63
SQL節點2的IP:192.168.1.56
(1)到mysql官網下載一個解壓版的mysql cluster,在下面~
根據自己的作業系統選擇
下載完成後解壓
(2)組態管理節點
在管理節點的C盤建立一個mysql檔案夾,然後在mysql檔案夾下建立一個bin檔案夾和mysql-cluster檔案夾。在剛剛解壓出來的檔案夾中的bin檔案夾下找到ndb_mgm.exe和ndb_mgmd.exe,然後複製到剛剛建立的bin檔案夾下,並在此檔案夾下新cluster-logs檔案夾、config.ini檔案和my.ini檔案。
編輯config.ini檔案:
[ndbd default] # Options affecting ndbd processes on all data nodes: # Number of replicas 資料節點數NoOfReplicas=2 DataDir=c:/mysqlcluster/datanode/mysql/bin/cluster-data # Directory for each data node‘s data files # Memory allocated to data storage 資料節點存放資料的路徑 DataMemory=80M# Memory allocated to index storage IndexMemory=18M # For DataMemory and IndexMemory, we have used the # default values.[ndb_mgmd] # Management process options:# Hostname or IP address of management node 管理節點 IPHostName=192.168.1.66 # Directory for management node log files 管理節點日誌存放路徑DataDir=C:/mysql/bin/cluster-logs [ndbd] # Options for data node "1": # (one [ndbd] section per data node) # Hostname or IP address 資料節點1 IPHostName=192.168.1.50 [ndbd] # Options for data node "2": # Hostname or IP address 資料節點2 IPHostName=192.168.1.53 [mysqld] # SQL node options: # Hostname or IP address sql節點1 IPHostName=192.168.1.63 [mysqld] # SQL node options: # Hostname or IP address sql節點2 IPHostName=192.168.1.56
編輯my.ini檔案:
[mysql_cluster]# Options for management node process config.ini存放路徑config-file=C:/mysql/bin/config.ini
(2)配置資料節點:
在資料節點1建立C:\mysqlcluster\datanode\mysql檔案夾,在這個mysql檔案夾中建立一個bin檔案夾和cluster-data檔案夾,在這個建立bin檔案夾中建立一個也叫cluster-data的檔案夾。接下來將解壓的檔案夾中data目錄下所有檔案複製到C:\mysqlcluster\datanode\mysql\cluster-data,再到解壓檔案夾中的bin目錄下複製一個ndbd.exe到C:\mysqlcluster\datanode\mysql\bin,最後再建立一個my.ini檔案。
編輯my.ini:
[mysql_cluster] # Options for data node process: # location of management server 管理節點IPndb-connectstring=192.168.1.66
由於資料節點2的配置與這個一毛一樣,你可以選擇再弄一次加深印象,也可以在資料節點2先建立C:\mysqlcluster\datanode,然後偷懶把這個資料節點1的C:\mysqlcluster\datanode下的mysql檔案夾整個複製到資料節點2的C:\mysqlcluster\datanode目錄下。
(3)配置SQL節點
在SQL節點1建立C:\mysqlcluster\sqlnode\mysql檔案夾,將安裝包檔案解壓到mysql目錄下,然後在C:\mysqlcluster\sqlnode\mysql下建立my.ini檔案
編輯my.ini:
[mysqld] # Options for mysqld process: # run NDB storage engine ndbcluster # location of management server 管理節點IPndb-connectstring=192.168.1.66
記得要把my-default.ini 檔案刪除或更名為其他名字
SQL節點2的配置和SQL節點1一毛一樣,自己看著辦~
(4)開啟mysql cluster
A、先開啟SQL節點的服務:(dos命令列)
如果沒有安裝MySQL服務,則到SQL節點進入C:\mysqlcluster\sqlnode\mysql\bin目錄下,使用mysqld –install安裝MySQL服務,使用net start mysql命令啟動MySQL服務
如果已經安裝了MySQL服務,則直接使用net start mysql命令啟動MySQL服務
SQL節點2也做相同操作
B、為root使用者指派遠端連線的相關許可權
到管理節點進入C:\mysqlcluster\sqlnode\mysql\bin目錄下,使用mysql -uroot -p,然後輸入密碼(預設為空白)
然後輸入
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘root‘ WITH GRANT OPTION;
C、啟動管理節點
到管理節點開啟命令列視窗,切到C:\mysql\bin目錄,輸入
ndb_mgmd -f config.ini --configdir=C:\mysql\mysql-cluster
這個視窗不能關掉,否則服務不可用。
開啟
D、啟動資料節點
到資料節點1開啟命令列視窗,切到C:\mysqlcluster\datanode\mysql\bin,輸入 ndbd
資料節點1:
資料節點2操作相同:
E、啟動SQL節點
到SQL節點1開啟命令列視窗,切到C:\mysqlcluster\sqlnode\mysql\bin,輸入:
mysqld –console
SQL節點1
SQL節點1啟動完成:
SQL節點2操作相同
4. 測試
到任意一個SQL節點建立資料庫,在建立的資料庫裡面建立一張表
create database db;use db;create table t (id int) engine=ndbcluster;
到另一個SQL節點查詢看看能否看到建立的資料庫db和表t,如果有那就沒問題了~
show databases;use db;show tables;
在windows環境下搭建mysql叢集