2321212dd 发表于 2016-11-28 10:35:08

Mysql高开用集群搭建

环境
rhel6.5x64
192.168.20.11   mysql11
192.168.29.12   mysql12
拓扑
环境
关闭iptables
关闭selinux
yum -y install ncurses-devel gcc gcc-c++make autoconf automake zlib zlib-devel openssl openssl-devel pcre-devel
开始安装配置mysql11
1
2
3
4
5
6
7
8
9
10
11
12
# tar -xf MySQL-Cluster-gpl-7.3.7-1.el6.x86_64.rpm-bundle.tar
# scpMySQL-Cluster-gpl-7.3.7-1.el6.x86_64.rpm-bundle.tar root@192.168.20.12:/root
# yum -y remove mysql*
# mkdir /var/lib/mysql
# mkdir /var/lib/mysql-cluster
# mkdir /var/run/mysqld
# rpm -ivhMySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64.rpm
# id mysql
uid=498(mysql) gid=498(mysql)groups=498(mysql)
# chown mysql:mysql -R/var/lib/mysql
# chown mysql:mysql -R/var/lib/mysql-cluster
# chown mysql:mysql -R/var/run/mysqld/





配置mysql12
1
2
3
4
# yum remove mysql -y
# rpm -qa | grep mysql*
mysql-libs-5.1.71-1.el6.x86_64
# rpm -e --nodepsmysql-libs-5.1.71-1.el6.x86_64




其实我觉得/var/lib/mysql/var/lib/mysql-cluster/var/run/mysqld这三个路径会自动生成
来试试

1
# rpm -ivhMySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64.rpm




看看,这里有了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ls /var/lib/mysql
ibdata1   ib_logfile1ndbinfo             RPM_UPGRADE_HISTORY      test
ib_logfile0 mysql       performance_schema RPM_UPGRADE_MARKER-LAST
# ls/var/lib/mysql-cluster/
# mkdir/var/lib/mysql-cluster
mkdir: cannot create directory`/var/lib/mysql-cluster': File exists
# id mysql
uid=498(mysql) gid=498(mysql)groups=498(mysql)
# ls/var/run/mysqld
# mkdir /var/run/mysqld
mkdir: cannot create directory`/var/run/mysqld': File exists
# /var/run/mysqld
-bash: /var/run/mysqld: is a directory
# ll -d /var/run/mysqld
drwxr-xr-x 2 root root 4096 Aug 27 23:29/var/run/mysqld
# ll -d/var/lib/mysql-cluster
drwxr-xr-x 2 root root 4096 Aug 27 23:29/var/lib/mysql-cluster
# ll -d /var/lib/mysql
drwxr-xr-x 6 mysql mysql 4096 Aug 27 23:53/var/lib/mysql
#




改成mysql用户所有吧

1
2
3
# chown mysql:mysql -R/var/lib/mysql
# chown mysql:mysql -R/var/lib/mysql-cluster
# chown mysql:mysql -R/var/run/mysqld/





配置mysql11成为管理节点主要是两个命令:ndb_mgmd 和 ndb_mgm

1
2
3
4
5
6
7
8
# which ndb_mgm
/usr/bin/ndb_mgm
# rpm -qf /usr/bin/ndb_mgm
MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64
# which ndb_mgmd
/usr/sbin/ndb_mgmd
# rpm -qf/usr/sbin/ndb_mgmd
MySQL-Cluster-server-gpl-7.3.7-1.el6.x86_64




生成配置文件

1
2
# cd /var/lib/mysql-cluster
# vimconfig.ini




#配置文件的内容:

NoOfReplicas=2               #数据写入数量。2 表示两份,这样当其中一个存储节点坏了,另一个还可以正常使用。
DataMemory=200M               #配置数据存储可以使用的内存
IndexMemory=100M                #配置缓存索引可以使用的内存


id=1
datadir=/var/lib/mysql-cluster                  # 指定存放管理结点的日志
HostName=192.168.20.11                         #管理结点的 IP 地址。本机 IP

###### data node options:                        #存储结点


HostName=192.168.20.11
DataDir=/var/lib/mysql                               #mysql 数据存储路径
id=2


HostName=192.168.20.12
DataDir=/var/lib/mysql
id=3

# SQL node options:                            #关于 SQL 结点

HostName=192.168.20.11                         # 指定可以连接 ndbd 引擎的 sql 结点。
id=4


HostName=192.168.20.12                         # 指定可以连接 ndbd 引擎的 sql 结点。
id=5

mysql11数据节点+SQL 节点配置文档:配置的内容要手动写呢!


1
# vim/etc/my.cnf





datadir=/var/lib/mysql                                          #mysql数据存储路径[单独的SQL节点不需要这行
ndbcluster                                                                #启动 ndb 引擎
ndb-connectstring=192.168.20.11                  # 管理节点 IP 地址


log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


ndb-connectstring=192.168.20.11                  # 管理节点 IP 地址
再装个客户端吧

1
# rpm -ivhMySQL-Cluster-client-gpl-7.3.7-1.el6.x86_64.rpm





mysql12数据节点+SQL 节点配置文档客户端装上

# rpm -ivhMySQL-Cluster-client-gpl-7.3.7-1.el6.x86_64.rpm
把mysql11上 的配置文件弄过来吧


1
# scp root@192.168.20.11:/etc/my.cnf/etc/my.cnf





SQL Cluster 初次启动命令以及用户密码更改调整:(请严格按照次序启动)启动 mysql cluster先启动顺序:管理结点服务需要手动启动 ndbd 数据结点服务-》sql 结点服务
关闭顺序:关闭管理结点服务关闭管理结点服务后,nbdb 数据结点服务会自动关闭-》手动把 sql结点服务关了。

执行初次启动前请先确认将两台机器的防火墙关闭(service iptables stop 或者设定防火墙端口可通,两个端口即:通讯端口 1186、数据端口 3306 )

启动管理结点命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# ndb_mgmd -f/var/lib/mysql-cluster/config.ini
MySQL Cluster Management Server mysql-5.6.21ndb-7.3.7
2016-08-28 00:28:34 INFO   -- The default config directory'/usr/mysql-cluster' does not exist. Trying to create it...
2016-08-28 00:28:34 INFO   -- Sucessfully created config directory
2016-08-28 00:28:34 WARNING-- at line 7: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 16: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 21: id is deprecated, use NodeIdinstead
2016-08-28 00:28:34 WARNING-- at line 26: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 30: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 30: Cluster configuration warning:
arbitrator with id 1 and db node with id 2 on same host 192.168.20.11
Running arbitrator on the same host as a database node may
cause complete cluster shutdown in case of host failure.
2016-08-28 00:28:34 WARNING-- at line 7: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 16: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 21: id is deprecated, use NodeIdinstead
2016-08-28 00:28:34 WARNING-- at line 26: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 30: id is deprecated, useNodeId instead
2016-08-28 00:28:34 WARNING-- at line 30: Cluster configuration warning:
arbitrator with id 1 and db node with id 2 on same host 192.168.20.11
Running arbitrator on the same host as a database node may
cause complete cluster shutdown in case of host failure.
#





#说明:仲裁员 (ID1) 和 DB(ID2)节点上同一主机192.168.20.11在同一台主机作为数据库节点上运行仲裁人
造成完整的集群关机的情况下主机发生故障。虽然报了一些警告,但是,我们已经执行成功了。

查看端口号:
1
2
3
4
5
# netstat -anptu | grep 1186
tcp      0      0 0.0.0.0:1186                0.0.0.0:*                   LISTEN      2084/ndb_mgmd      
tcp      0      0 127.0.0.1:1186            127.0.0.1:59216             ESTABLISHED 2084/ndb_mgmd      
tcp      0      0 127.0.0.1:59216             127.0.0.1:1186            ESTABLISHED 2084/ndb_mgmd      
#






查看日志存储位置:
1
2
3
4
5
6
7
# ll/var/lib/mysql-cluster/
total 16
-rw-r--r-- 1 root root 401 Aug 28 00:11config.ini
-rw-r--r-- 1 root root 699 Aug 28 00:28ndb_1_cluster.log
-rw-r--r-- 1 root root26 Aug 28 00:28 ndb_1_out.log
-rw-r--r-- 1 root root   4 Aug 28 00:28 ndb_1.pid
#




启动存储结点服务:mysql11


1
2
3
4
# ndbd --initial
2016-08-28 00:32:41 INFO   -- Angel connected to '192.168.20.11:1186'
2016-08-28 00:32:41 INFO   -- Angel allocated nodeid: 2
#




mysql12

1
2
3
4
# ndbd --initial
2016-08-28 00:33:09 INFO   -- Angel connected to '192.168.20.11:1186'
2016-08-28 00:33:09 INFO   -- Angel allocated nodeid: 3
#





启动 SQL 结点服务:mysql11


1
2
3
4
# mysqld_safe--defaults-file=/etc/my.cnf &
2166
160828 00:33:49mysqld_safe Logging to '/var/log/mysqld.log'.
160828 00:33:50 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql




mysql12

1
2
3
4
# mysqld_safe--defaults-file=/etc/my.cnf &
1782
160828 00:34:56mysqld_safe Logging to '/var/log/mysqld.log'.
160828 00:34:56 mysqld_safe Starting mysqlddaemon with databases from /var/lib/mysql





测试:
查看 mysql 集群状态:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at:192.168.20.11:1186
Cluster Configuration
---------------------
   2node(s)
id=2@192.168.20.11(mysql-5.6.21 ndb-7.3.7, Nodegroup: 0, *)
id=3@192.168.20.12(mysql-5.6.21 ndb-7.3.7, Nodegroup: 0)

         1 node(s)
id=1@192.168.20.11(mysql-5.6.21 ndb-7.3.7)

   2 node(s)
id=4@192.168.20.11(mysql-5.6.21 ndb-7.3.7)
id=5@192.168.20.12(mysql-5.6.21 ndb-7.3.7)

ndb_mgm>




测试集群,数据同步:mysql11先查看下默认生成的密码


1
2
# cat /root/.mysql_secret
# The random password set for the root userat Sat Aug 27 23:31:54 2016 (local time): oPjyozXIA05TSXb4





第一次登录


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# mysql -u root -poPjyozXIA05TSXb4
Warning: Using a password on the commandline interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version:5.6.21-ndb-7.3.7-cluster-gpl

Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.

Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

mysql>




mysql> show databases;                   #第一使用数据库时,必须修改密码
ERROR 1820 (HY000): You must SET PASSWORDbefore executing this statement
mysql>
mysql> set password=password('111111');
Query OK, 0 rows affected (0.12 sec)

mysql> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql            |
| ndb_2_fs         |
| ndbinfo            |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.10 sec)

mysql>
mysql> exit
Bye
来使用刚才修改的密码登录看


1
# mysql -uroot -p111111




mysql> show databases;+--------------------+| Database         |+--------------------+| information_schema || mysql            || ndb_2_fs         || ndbinfo            || performance_schema || test               |+--------------------+6 rows in set (0.01 sec)
mysql12先查看默认密码


1
2
# cat /root/.mysql_secret
# The random password set for the root userat Sat Aug 27 23:53:13 2016 (local time): MjcJWscCjVpvnfDX




默认密码登录以后改密码

1
#mysql -uroot -pMjcJWscCjVpvnfDX




Warning: Using a password on the commandline interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.21-ndb-7.3.7-cluster-gpl

Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.

Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

mysql> set password=password('111111');
Query OK, 0 rows affected (0.17 sec)

mysql> exit
Bye
使用修改的密码登录

1
# mysql -uroot -p111111




Warning: Using a password on the commandline interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 3
Server version:5.6.21-ndb-7.3.7-cluster-gpl MySQL Cluster Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or itsaffiliates. All rights reserved.

Oracle is a registered trademark of OracleCorporation and/or its
affiliates. Other names may be trademarksof their respective
owners.

Type 'help;' or '\h' for help. Type '\c' toclear the current input statement.

mysql> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| mysql            |
| ndb_3_fs         |
| ndbinfo            |
| performance_schema |
| test               |
+--------------------+
6 rows in set (0.07 sec)

mysql>
插入数据:mysql11

1
# mysql -uroot -p111111




mysql> create database abiao;
Query OK, 1 row affected (0.38 sec)

mysql12
mysql> show databases;
+--------------------+
| Database         |
+--------------------+
| information_schema |
| abiao             |
| mysql            |
| ndb_3_fs         |
| ndbinfo            |
| performance_schema |
| test               |
+--------------------+
7 rows in set (0.00 sec)

关闭 mysql 集群顺序:关闭管理节点服务-》关闭管理节点时,数据结点服务自动关闭–》 需要手动关闭 SQL 结点服务
关闭管理节点
1
2
3
4
5
6
7
8
9
10
11
# ndb_mgm
-- NDB Cluster -- Management Client --

ndb_mgm> shutdown
Node 2: Cluster shutdown initiated
Node 3: Cluster shutdown initiated
Node 2: Node shutdown completed.
3 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server toshutdown.
Node 3: Node shutdown completed.
ndb_mgm> exit




看看进程,

1
2
3
4
# ps -axu | grepndbd
Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ
root      23820.00.1 103244856 pts/1    S+   00:500:00 grep ndbd
#




已经关掉了节点
手动关闭 SQL 结点服务mysql11

1
2
3
4
5
6
7
8
9
10
11
12
#ps -axu | grep mysql
Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ
root      21660.00.0 106196192 pts/0    S    00:330:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf
mysql   22911.4 77.8 1364648 504800pxs/0Sl   00:330:15 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr--datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql--log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid
root      23590.0 0.5 1258002748 pts/2    S+00:39   0:00 mysql -uroot -px xxxx
root      23870.00.1 103244860 pts/1    S+   00:520:00 grep mysql
# kill -9 2166
# kill -9 2166
# ps -axu | grep mysql
Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ
root      23590.00.5 125800 2748 pts/2    S+   00:390:00 mysql -uroot -px xxxx
root      23940.00.1 103244860 pts/1    S+   00:540:00 grep mysql





mysql12

1
2
3
4
5
6
7
8
9
10
11
# ps -axu | grep mysql
Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ
root      17820.00.0 106196   20 pts/0    S    00:340:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf
mysql   19071.6 46.6 1364288 302192pxs/0Sl   00:340:20 /usr/sbin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr--datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql--log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid
root      19781.00.1 103248860 pts/1    S+   00:540:00 grep mysql
# kill -9 1782
# kill -9 1907
# ps -axu | grep mysql
Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ
root      19810.00.1 103248860 pts/1    S+   00:550:00 grep mysql
#






因为 是笔记,所以全篇都是代码

页: [1]
查看完整版本: Mysql高开用集群搭建