Centos6.5下安装Mysql集群

安装要求:
安装环境:Centos6.5
安装方式:源码安装
软件名称:mysql-cluster-gpl-7.2.26-linux2.6-x86_64.tar.gz
软件安装位置:/usr/local/mysql
数据存放位置:/var/mysql/data
日志存放位置:/var/mysql/logs

集群设计:
首先设计集群的安装分配方式,至少需要三台服务器,
sql节点和数据节点可以放在同一台服务器上,服务器分配如下:
管理节点:192.168.147.129
sql节点和数据节点1:192.168.147.130
sql节点和数据节点2:192.168.147.132
目前此设计存在的问题是管理节点是单点的,129管理节点服务器挂掉后整个集群就会瘫痪。

检查安装的Mysql:
检查系统中已经安装过的Mysql信息,如果有卸载之:
[root@wjx/]#rpm -qa | grep mysql #查看mysql信息
[root@wjx/]# service mysql status #查看mysql服务的状态
[root@wjx/]# /etc/init.d/mysqld stop #关闭目前的mysql服务
[root@wjx/]# ps -ef | grep mysql #检验mysql是否已经关闭如果没关闭,执行kill -9 端口号
[root@wjx/]#rpm -e --allmatches --nodeps mysql mysql-server #执行删除或者用如下口令
[root@wjx/]#yun remove mysql mysql-*
[root@wjx/]#rm -rf /var/lib/mysql #删除Mysql的安装目录

管理节点的安装:
安装管理节点在(192.168.147.129)上
[root@wjx/]# groupadd mysql

[root@wjx/]# useradd mysql -g mysql
[root@wjx/]# cd /usr/local
[root@wjxlocal]# tar -zxvf mysql-cluster-gpl-7.2.26-linux2.6-x86_64.tar.gz
[root@wjxlocal]# mv mysql-cluster-gpl-7.2.26-linux2.6-x86_64 mysql
[root@wjxlocal]# chown -R mysql:mysql mysql

[root@wjxlocal]# cd mysql
[root@wjxmysql]# scripts/mysql_install_db --user=mysql

配置管理节点
[root@wjx~]# mkdir /var/lib/mysql-cluster

[root@wjx~]# cd /var/lib/mysql-cluster
[root@wjxmysql-cluster]# vi + /var/lib/mysql-cluster/config.ini

在config.ini中添加如下内容
[NDBD DEFAULT]

NoOfReplicas=1
[TCP DEFAULT]
portnumber=3306

[NDB_MGMD]
#设置管理节点服务器
HostName=192.168.147.129
DataDir=/var/mysql/data

[NDBD]
#设置存储节点服务器(NDB节点)
HostName=192.168.147.130
DataDir=/var/mysql/data

[NDBD]
#第二个NDB节点
HostName=192.168.147.132
DataDir=/var/mysql/data

[MYSQLD]
#设置SQL节点服务器
HostName=192.168.147.130
[MYSQLD]
#第二个SQL节点
HostName=192.168.147.132

管理节点启动
[root@wjx~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini#启动节点显示如下内容
MySQL Cluster Management Server mysql-5.5.53 ndb-7.2.26
2016-10-22 00:40:32 [MgmtSrvr] INFO -- The default config directory '/usr/local/mysql/mysql-cluster' does not exist. Trying to create it...
2016-10-22 00:40:32 [MgmtSrvr] INFO -- Sucessfully created config directory
2016-10-22 00:40:32 [MgmtSrvr] WARNING -- at line 4: [TCP] portnumber is deprecated

[root@wjx~]# mkdir /var/mysql/logs
[root@wjx~]# netstat -lntpu
[root@wjxmysql-cluster]# /usr/local/mysql/bin/ndb_mgm#打开管理节点显示如下内容
-- NDB Cluster -- Management Client --
ndb_mgm>#输入show显示如下内容
Connected to Management Server at: localhost:1186
Cluster Configuration
--------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected,accepting connect from 192.168.147.130)
id=3 (not connected,accepting connect from 192.168.147.132)
[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.147.129 (mysql-5.5.53 ndb-7.2.26)

[mysqld(API)] 2 node(s)
id=4 (not connected,accepting connect from 192.168.147.130)
id=5 (not connected,accepting connect from 192.168.147.132)

ndb_mgm>
管理节点的关闭:
[root@wjx/]# /usr/local/mysql/bin/ndb_mgm -e shutdown

数据节点的安装
数据节点1: 192.168.147.130
数据节点2: 192.168.147.132

[root@test/]# groupadd mysql
[root@test/]# useradd mysql -g mysql
[root@test /]# cd /usr/local
[root@test local]# tar -zxvf mysql-cluster-gpl-7.2.26-linux2.6-x86_64.tar.gz
[root@test local]# mv mysql-cluster-gpl-7.2.26-linux2.6-x86_64 mysql
[root@test local]# chown -R mysql:mysql mysql
[root@test local]# cd mysql
[root@test mysql]# scripts/mysql_install_db --user=mysql
[root@test mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@test mysql]# cp support-files/mysql.server /etc/init.d/mysqld

配置数据节点
[root@test mysql]# mkdir -p /var/mysql/data
[root@test mysql]# mkdir /var/mysql/logs
[root@test mysql]# vi /etc/my.cnf #添加如下内容

[MYSQLD]
ndbcluster
ndb-connectstring=192.168.147.129
[MYSQL_CLUSTER]
ndb-connectstring=192.168.147.129
[NDB_MGM]
connect-string=192.168.147.129

数据节点的启动
[root@test mysql]# /usr/local/mysql/bin/ndbd --initial #只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加�Cinitial参数!
第一次启动如下:

2016-10-2213:43:53 [ndbd] INFO -- Angel connected to '192.168.147.129:1186'
2016-10-2213:43:53 [ndbd] INFO -- Angel allocated nodeid: 2
[root@localhost mysql]# /usr/local/mysql/bin/ndbd #正常启动方式
数据节点的关闭

[root@test /]# /etc/rc.d/init.d/mysqld stop #或者
[root@test mysql]# /etc/init.d/mysql stop
Shutting down MySQL.. SUCCESS!

/usr/local/mysql/bin/mysqladmin -uroot shutdown

SQL节点的安装
SQL节点和存储节点(NDB节点)安装相同,都执行以下操作;

sql节点1: 192.168.147.130
sql节点2: 192.168.147.132
[root@test /]# groupadd mysql
[root@test /]# useradd mysql -g mysql
[root@test /]# cd /usr/local
[root@test local]# tar -zxvf mysql-cluster-gpl-7.2.26-linux2.6-x86_64.tar.gz
[root@test local]# mv mysql-cluster-gpl-7.2.26-linux2.6-x86_64 mysql
[root@test local]# chown -R mysql:mysql mysql
[root@test local]# cd mysql
[root@test mysql]# scripts/mysql_install_db --user=mysql
[root@test mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@test mysql]# cp support-files/mysql.server /etc/init.d/mysqld

SQL节点配置
[root@test mysql]# mkdir -p /var/mysql/data #创建存储数据的文件夹
[root@test mysql]# mkdir /var/mysql/logs #创建存储日志的文件夹
[root@test mysql]# vi /usr/local/mysql/my.cnf #修改配置文件

在my.cnf中追加以下内容
[MYSQLD]

ndbcluster
ndb-connectstring=192.168.147.129
[MYSQL_CLUSTER]
ndb-connectstring=192.168.147.129
[NDB_MGM]
connect-string=192.168.147.129
数据节点和sql节点安装在同一台服务器时3306端口会冲突导致数据库服务启动不了只需要在my.cnf中将端口号改了即可,如下

[client]
#password = your_password
port = 3308
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3308
socket = /tmp/mysql.sock
skip-external-locking


SQL节点启动
[root@test mysql]# service mysqld start

Starting MySQL.. SUCCESS!

SQL节点关闭
[root@test mysql]# /usr/local/mysql/bin/mysqladmin -uroot shutdown#最直接的方式
[root@test mysql]# service mysqld stop
[root@test mysql]# /etc/init.d/mysqld stop

#至此数据节点和SQL节点安装配置完毕只需要在.130和.132两台服务器上启动数据节点服务和mysql服务即可,启动后正常显示如下

[root@test ~]# /usr/local/mysql/bin/ndbd

2016-10-22 15:17:58 [ndbd] INFO -- Angel connected to '192.168.147.129:1186'

2016-10-22 15:17:58 [ndbd] INFO -- Angel allocated nodeid: 3

[root@test ~]# service mysqld start

Starting MySQL SUCCESS!

功能测试
在管理节点(192.168.147.129)上查看服务状态

[root@wjx~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

MySQL Cluster Management Server mysql-5.5.53 ndb-7.2.26

[root@wjx~]# /usr/local/mysql/bin/ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2 @192.168.147.130 (mysql-5.5.53 ndb-7.2.26,Nodegroup: 0,*)

id=3 @192.168.147.132 (mysql-5.5.53 ndb-7.2.26,no nodegroup)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.147.129 (mysql-5.5.53 ndb-7.2.26)

[mysqld(API)] 2 node(s)

id=4 @192.168.147.130 (mysql-5.5.53 ndb-7.2.26)

id=5 @192.168.147.132 (mysql-5.5.53 ndb-7.2.26)
可以看到这里的数据节点、管理节点、sql节点都是正常的。

注意
1.
在建表的时候一定要用ENGINE=NDB或ENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。虽然在MySql Cluster7.2版本开始提供了”用户权限共享”。

数据同步测试
在一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步。
1步:SQL节点1(192.168.147.130)上增加数据:
[root@test mysql]# /etc/rc.d/init.d/mysqld status #检验mysql是否运行
[root@test mysql]# /etc/rc.d/init.d/mysqld start #启动mysql
[root@test mysql]# /usr/local/mysql/bin/mysql -u root -p

Enter password:
mysql> show databases;
mysql> create database testdb2;
mysql> use testdb2;
mysql> CREATE TABLE td_test2 (i INT) ENGINE=NDB; #这里必须指定数据库表的引擎为NDBCLUSTER,与配置文件中的名称相同
mysql> INSERT INTO td_test2() VALUES (1);
mysql> INSERT INTO td_test2() VALUES (152);
mysql> SELECT * FROM td_test2;
2步:进入到SQL节点2(192.168.147.132)上查看数据
mysql> use testdb2;

Database changed
mysql> SELECT * FROM td_test2;
+------+
| i |
+------+
| 152|
| 1 |
+------+

2 rows in set (0.01 sec)
3步:反向测试,SQL节点2(192.168.147.132)上增加数据:
mysql> create database bb;
mysql> use bb;

mysql> CREATE TABLE td_test3 (i INT) ENGINE=NDB;
mysql> INSERT INTO td_test3 () VALUES (98);
mysql> SELECT * FROM td_test3;
第四步:SQL节点1(192.168.15.232)上查看数据:
Database changed
mysql> SELECT * FROM td_test3;
+------+
| i |
| 98 |
1 row in set (0.00 sec)

关闭集群

先关闭管理节点,然后关闭SQL节点和数据节点。

集群启动操作顺序

要再次启动集群,按照以下顺序执行:

管理节点->数据节点�C> SQL节点注意:此次启动数据节点时不要加”�Cinitial”参数。

启动中的常见错误

错误提示:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决办法1(端口占用)netstat -anp |grep 3306
kill -9 进程号
解决办法1(权限问题)[root@localhost mysql]# chown -R mysql:mysql /var/mysql //修改自定义文件夹的访问权限

修改root用户空密码语句:

use mysql;

update user setPassword=password('root') where User='root';

set PASSWORD FOR'root'@'localhost' = PASSWORD('root');
赋予root用户所有权限:
grant allprivileges on *.* to 'root'@'%'identified by 'root' with grant option;

权限即刻生效:
flush privileges;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属