一,節點分布
mysql-cluster圖解
管理節點:172.19.132.161
sql節點1:172.19.132.164
data節點1:172.19.132.164
sql節點2:172.19.132.167
data節點2:172.19.132.167
我的 是32位centos6.6
下載32位的mysql-cluster-gpl-7.5.5-linux-glibc2.5-i686.tar.gz
二、172.19.132.161安裝配置管理節點
所有節點都要創建mysql用戶
[root@bogon ~]#groupadd mysql [root@bogon ~]#useradd mysql -g mysql
[root@bogon ~]# vim /var/lib/mysql-cluster/config.ini
/var/lib/mysql-cluster/config.ini文件具體內容為
[ndbd default]
NoOfReplicas=2
DataMemory=512M
IndexMemory=18M
[ndb_mgmd]
HostName=172.19.132.161
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=172.19.132.164
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=172.19.132.167
DataDir=/var/lib/mysql-cluster
[mysqld]
HostName=172.19.132.164
[mysqld]
HostName=172.19.132.167
解壓
[root@bogon ~]# tar xvf mysql-cluster-gpl-7.5.5-linux-glibc2.5-i686.tar.gz
改名
[root@bogon ~]# mv mysql-cluster-gpl-7.5.5-linux-glibc2.5-i686 mysql
[root@bogon ~]# cd mysql
復制命令腳本ndb_mgm
[root@bogon ~]# cp bin/ndb_mgm* /usr/local/bin
[root@bogon ~]# cd /usr/local/bin
[root@bogon ~]# chmod +x ndb_mgm*
[root@bogon ~]# mkdir /var/lib/mysql-cluster
使用配置文件初始化管理節點
[root@bogon ~]# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial
注意(首次啟動才需要加 --initial后面啟動去掉--initial即可)
管理節點關閉命令:ndb_mgm -e shutdown
查看狀態:ndb_mgm-e status
查看狀態:ndb_mgm-e show
安裝啟動成功如下
二、172.19.132.164和172.19.132.167安裝數據和sql節點
按步驟一中安裝mysql-cluster
添加/etc/my.cnf
my.cnf內容是
[root@bogon ~]# cat /etc/my.cnf
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
ndbcluster #使用ndb集群引擎
ndb-connectstring=172.19.132.161
default-storage-engine=ndbcluster #設置默認引擎
skip-name-resolve
#skip-grant-tables
lower_case_table_names=1
autocommit=1
# MySQL支持4種事務隔離級別,他們分別是:
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
# 如沒有指定,MySQL默認采用的是REPEATABLE-READ,ORACLE默認的是READ-COMMITTED
#transaction_isolation = READ-COMMITTED
#transaction_isolation = REPEATABLE-READ
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_Create_USER
# 一般配置選項
log-error=/usr/local/mysql/data/centos68.err
pid-file=/usr/local/mysql/data/centos68.pid
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
#socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8
# 通用查詢日志
#general_log = 1
#general_log_file = /usr/local/mysql/data//mysql.log
# 解決日志時間格式
log_timestamps=SYSTEM
#下面是可選項,要不要都行,如果出現啟動錯誤,則全部注釋掉,保留最基本的配置選項,然后嘗試添加某些配置項后啟動,檢測配置項是否有誤
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8
thread_stack = 512K
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6
server_id=1
innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates
prompt=mysql(\\u@\\h:\\d)>
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
[client]
[mysql_cluster]
ndb-connectstring=172.19.132.161
主要比普通my.cnf多如下配置項
ndbcluster #使用ndb集群引擎
ndb-connectstring=172.19.132.161
default-storage-engine=ndbcluster #設置默認引擎
[mysql_cluster]
ndb-connectstring=172.19.132.161
啟動ndbd
[root@bogon ~]# /usr/local/mysql/bin/ndbd --initial
注意(首次啟動才需要加 --initial后面啟動去掉--initial即可)
啟動成功截圖
安裝mysqld進程:供用戶訪問和執行sql語句
初始化數據庫
進入到/opt/mysql/mysql/bin,執行命令
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成的密碼保存下來
2018-03-21T13:01:46.179890Z 1 [Note] A temporary password is generated for root@localhost: o1)=u*LHw#mj
將mysql做成開機服務cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
mysql啟動關閉停止
service mysql start
service mysql status
service mysql stop
登錄mysql
mysql -uroot -p
輸入密碼 o1)=u*LHw#mj
登錄進去后修改root密碼
set password for root@localhost = password('root');
修改下mysql的連接為任意ip
新安裝的mysql密碼是空的。
use mysql
SELECT `Host`,`User` FROM user;
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;
SELECT `Host`,`User` FROM user;
172.19.132.167同樣步驟
啟動ndbd
啟動mysql
關閉集群
先關閉管理節點,然后關閉SQL節點和數據節點。
集群啟動操作順序
要再次啟動集群,按照以下順序執行:
管理節點 ->數據節點 –> SQL節點
三、測試集群
172.19.132.164上創建數據庫和表新增數據 172.19.132.167都可以同步
注意創建表需要指定存儲引擎為NDBCLUSTER
CREATE TABLE yeyusehg(
id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME VARCHAR(20) NOT NULL DEFAULT '')
ENGINE = NDBCLUSTER DEFAULT CHARSET utf8mb4;