系统环境采样
(来自其他机器,直接copy过来的,在安装的机器上,按照步骤查看即可,当然这些还不够实际,后续补充)

检查系统内是否有其他mysql
rpm -qa | grep mysql 是否存在mysql用户和用户组
grep mysql /etc/group 查看linux系统版本
[root@fp-web-112 src]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
内存基本页大小
[root@fp-web-112 src]# getconf PAGE_SIZE
4096 //4m
//内核版本
[root@fp-web-112 src]# uname -a
Linux fp-web-112 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 查看linux是32位还是64位(下载包的时候要注意)
[root@fp-web-112 src]# getconf LONG_BIT
64 查看系统负载磁盘和分区
[root@fp-web-112 src]# cat /proc/loadavg
0.32 0.26 0.14 1/581 51903 查看挂载情况(以后可能会面临磁盘空间问题)
[root@fp-web-112 src]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 96G 22G 75G 23% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 532K 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/sda1 497M 109M 388M 22% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
//查看内存空闲,运行时间异常,或者机器混装大量应用这个时候就需要注意
[root@fp-web-112 src]# free -g
total used free shared buff/cache available
Mem: 15 0 2 0 12 14
Swap: 37 0 37 [root@fp-web-112 src]# fdisk -l //信息比较多忽略. //查看磁盘文件格式
[root@fp-web-112 src]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda ├─sda1 xfs 301c75d3-73ce-4342-befa-c8f1f788bcdf /boot
└─sda2 LVM2_member dJcKYm-10WN-Vsy8-n11y-B8wY-vsFt-N76qpy
├─centos-root xfs c73e2c36-261b-4f51-9131-4faf79d86a7d /
└─centos-swap swap b28efdea-e1a7-425d-bca0-23eac0dd22e0 [SWAP]
sdb
├─sdb1
├─sdb2
└─sdb5 swap 849e0cfd-13a3-4acf-98c3-793ddd0ccd30 [SWAP]
sr0
loop0 xfs 4f434d0b-6292-44f1-af05-ed40c74ba683
└─docker-253:0-402851692-pool
loop1
└─docker-253:0-402851692-pool //打开文件数量
[root@fp-web-112 src]# ulimit -a core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 64052
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 64052
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
// linux资源限制配置文件
[root@fp-web-112 src]# cat /etc/security/limits.conf

1.搭建环境
   mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64.tar.gz
   操作系统centos 7.9
  下载地址链接:http://mirrors.sohu.com/mysql/MySQL-Cluster-7.5/
2.集群内的各个节点的规划

节点(用途)

 IP地址(主机名)

管理节点

192.168.0.18

SQL节点1

 192.168.0.16

SQL节点2

 1192.168.0.17

3.管理节点配置步骤(192.168.0.18)

通过rz命令上传到Linux上 /usr/local下
[root@mysql-mnm-node ~]#  tar zxvf mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64.tar.gz  ##解压

[root@mysql-mnm-node ~]# mv mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64  /usr/local/    ## 解压后的目录移动到/usr/local/下,

[root@mysql-mnm-node ~]#cd /usr/local/mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64

[root@mysql-mnm-node ~]#cp bin/ndb_mgm* /usr/local/bin   ###复制所有的ndb  到 /usr/local/bin 下

[root@mysql-mnm-node ~]#cd /usr/local/bin

[root@mysql-mnm-node ~]#chmod +x ndb_mgm*     ####可以执行命令最好放入到环境变量中,这样可以直接执行命令

[root@mysql-mnm-node ~]#mkdir /var/lib/mysql-cluster   ###创建数据目录

####创建config.ini 配置文件

[root@mysql-mnm-node ~]#vi /var/lib/mysql-cluster/config.ini

[ndbd default]
NoOfReplicas=2
DataMemory=512M
IndexMemory=18M [ndb_mgmd]
HostName=192.168.0.18
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=192.168.0.16
DataDir=/var/lib/mysql-cluster [ndbd]
HostName=192.168.0.17
DataDir=/var/lib/mysql-cluster [mysqld]

[root@mysql-mnm-node ~]#/usr/local/bin/ndb_mgmd -f  /var/lib/mysql-cluster/config.ini --initial   ###使用配置文件初始化管理节点

[root@mysql-mnm-node ~]# /usr/local/mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64/bin/ndb_mgm    ###执行下面的命令验证下
ndb_mgm> show

4.集群sql节点配置步骤(在192.168.0.16和192.168.0.17执行相同步骤)

通过rz命令上传到Linux上,通过 tar zxvf mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64.tar.gz 解压

解压后的目录移动到/usr/local/下,目录名称改为mysql

[root@mysql-sql-node ~]# mv mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64 /usr/local/mysql

[root@mysql-sql-node ~]#groupadd mysql
[root@mysql-sql-node ~]#useradd -g mysql -s /sbin/nologin mysql
[root@mysql-sql-node ~]#mkdir /var/lib/mysql-cluster
[root@mysql-sql-node ~]#chown root:mysql /var/lib/mysql-cluster/
[root@mysql-sql-node ~]#yum -y install libaio
[root@mysql-sql-node ~]#cd /usr/local/mysql/bin/
[root@mysql-sql-node ~]#./mysqld --initialize   ####初始化会建立相关的一些必要的表,如果不进行初始化安装创建,则mysql你都进不去
[root@mysql-sql-node ~]#cd /usr/local/mysql/
[root@mysql-sql-node ~]#chown -R root .
[root@mysql-sql-node ~]#chown -R mysql data
[root@mysql-sql-node ~]#chgrp -R mysql .
[root@mysql-sql-node ~]#cp support-files/mysql.server /etc/rc.d/init.d/
[root@mysql-sql-node ~]#chmod +x /etc/rc.d/init.d/mysql.server
[root@mysql-sql-node ~]#chkconfig --add mysql.server
[root@mysql-sql-node ~]#vim /etc/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=192.168.0.18

[mysql_cluster]
ndb-connectstring=192.168.0.18

[root@mysql-sql-node ~]#/usr/local/mysql/bin/ndbd --initial

[root@mysql-sql-node ~]#/etc/init.d/mysql.server start   ####启动mysql服务

[root@db-sql-node2 ~]# echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile && source /etc/profile   ####把mysql/bin目录添加到环境变量

报错解决:

mysql(ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2))。
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
解决:mysql登录不了需要密码的问题。
1.编辑my.cnf
vi /etc/my.cnf添加在[mysqld]后面任意一行添加“skip-grant-tables“用来跳过密码验证的过程。

2.重启mysql
/etc/init.d/mysql.server restart

3.进去mysql修改root密码
flush privileges; 刷新mysql系统权限相关表后重新设置密码
set password for root@localhost = password(‘root’);
修改完成重启mysql
/etc/init.d/mysql.server restart
进入mysql修改mysql的root登陆密码
set password for root@localhost = password(‘root’);

开始测试:
mysql> create database aa;
mysql> use aa
mysql> CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败,只有这样子,这两台机器才能共享数据库的数据结构
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
±-----+
| i |
±-----+
| 1 |
±-----+

现在到另外一个数据节点查看下aa数据库是否同步过来了.

#/usr/local/mysql/bin/mysql -u root -p
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| aa |
| bb |
| mysql |
| ndb_3_fs |
| test |
±-------------------+
mysql> use aa
mysql> select * from ctest2;

从上面可以看到数据已经同步了,mysql集群环境已经搭建完成.

报错解决:
1.用navicat连接不成功需要报错代码1130原因是被连接的数据不允许使用 192.168.1.13访问,只允许是用 localhost;
进入mysql mysql -u root -p 执行线面的sql语句就解决了。
mysql>use mysql;
mysql>select ‘host’ from user where user=‘root’;
mysql>update user set host = ‘%’ where user =‘root’;
mysql>flush privileges;
mysql>select ‘host’ from user where user=‘root’;
2.处理导入数据库表报错问题在my.cnf的[mysqld]里面加入这句,
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
3.建数据库表需要指定NDB
CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败

4.启动和关闭

启动mysql集群。启动顺序为:管理节点→数据节点→SQL节点。

管理操作

1.在(192.168.0.18)启动管理节点(关闭命令:ndb_mgm -e shutdown)

[root@dns-server ~]# /usr/local/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini  ##-f指定配置文件
2.在(192.168.0.16和192.168.0.17)启动ndbd和MySQL(关闭命令:/etc/init.d/mysql.server stop)

[root@db-sql-node2 ~]# /usr/local/mysql/bin/ndbd
[root@db-sql-node2 ~]# /etc/init.d/mysql.server start
3.在管理节点(192.168.0.18)查看状态
/usr/local/mysql-cluster-gpl-7.5.10-linux-glibc2.12-x86_64/bin/ndb_mgm
ndb_mgm> show

4.在db-sql-node1(192.168.0.17)登陆mysql创建数据库和表,在db-sql-node2(192.168.0.16)上验证同步结果

(如果使用sql创建表,命令为:CREATE TABLE student (age INT) ENGINE=NDBCLUSTER)

5.关闭时只需要关闭管理节点,后面的数据节点会同时被关闭

搭建MySQL集群-注意版本的更多相关文章

  1. 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

    超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了.本文主 ...

  2. MySQL 集群历史版本信息

    MySQL 集群有两种命名方式,在Mysql5.1版本之前,MySQL 集群是以MySQL版本号命名:MySQL5.1(包括)之后开始以 mysql-mysql_server_version-ndb- ...

  3. 170711、Linux下搭建MySQL集群

    一.MySQL集群简介 1.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(r ...

  4. Docker环境下的前后端分离项目部署与运维(六)搭建MySQL集群

    单节点数据库的弊病 大型互联网程序用户群体庞大,所以架构必须要特殊设计 单节点的数据库无法满足性能上的要求 单节点的数据库没有冗余设计,无法满足高可用 单节点MySQL的性能瓶领颈 2016年春节微信 ...

  5. docker搭建mysql集群

    目录 一.集群方案 二.安装PXC集群 三.Haproxy负载均衡 四.访问测试 五.节点宕机或重启 六.参考 一.集群方案 1.Replication 速度快,但仅能保证弱一致性,适用于保存价值不高 ...

  6. Windows下搭建Mysql集群

    Mysql集群的基本架构如下: 基本原理参考:[转]MySQL Cluster (集群)基本原理 这里采用最小配置,用两台机器来分别部署一个management 节点,2个data node, 2个s ...

  7. docker 搭建Mysql集群

    docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行.重启.关闭Docker虚拟机 servic ...

  8. linux搭建mysql集群

    一.公共配置 请在三个虚拟机上分别配置此处的配置项. 1. 安装虚拟机 虚拟机操作系统安装CentOS 6.5的x86_64版本. 2. 拷贝mysql cluster 下载以下版本的MySQL-Cl ...

  9. 搭建mysql集群,使用Percona XtraDB Cluster搭建

    Percona XtraDB Cluster提供的特性有:1.同步复制,事务要么在所有节点提交或不提交.2.多主复制,可以在任意节点进行写操作.3.在从服务器上并行应用事件,真正意义上的并行复制.4. ...

随机推荐

  1. iframe于iframe页面之间的函数相互调用

    因为iframe页面于包括父页面在内的其他页面通讯有跨域问题,所以只有在服务器环境下或者火狐浏览器下才能测试. 在iframe页面调用父页面的函数采用parent,例子:在父页面有一个say()函数, ...

  2. 2.8 C++STL set/multiset容器详解

    文章目录 2.8.1 引入 2.8.2 代码示例 2.8.3 代码运行结果 2.8.4 对组pair的补充 代码实例 运行结果 总结 2.8.1 引入 set/multiset容器概念 set和mul ...

  3. Net Framework 中托管代码与非托管代码的区别

    托管代码与非托管代码的区别 1 简单的说,就是代码被编译成MSIL后在.net的Framework下运行,同操作系统底层的交互都交给framework去做. 所谓非托管代码就是脱离了Framework ...

  4. 6月4日 python学习总结 装饰器复习

    1.  装饰器的原理以及为什么要使用装饰器 在代码运行期间动态增加功能的方式,称之为"装饰器"(Decorator). 在不影响原代码结构的情况下为其添加功能 2.  装饰器的基本 ...

  5. java中自己常用到的工具类-压缩解压zip文件

    package com.ricoh.rapp.ezcx.admintoolweb.util; import java.io.File; import java.io.FileInputStream; ...

  6. 有关电控制图软件EPLAN的安装,下面有破解版本2.7

    前段时间刚刚接触这一块,就安装个软件老是出问题,所以我通过自己的努力学会啦,来给正要学习EPLAN的同学发福利啦 15:07:48 安装包发放在百度网盘来自取呀  建议安装我勾选的这个哦 链接:htt ...

  7. 你应该知道的Redis事务

    前两篇 Redis 文章都大几千字,今天我们换个小清新点的 如果你也了解过关系型数据库事务的话,相信这篇文章对你来说是很容易理解的了.具体什么是事务我就不说不多了,直接讲 Redis 事务相关的部分. ...

  8. Future和FutureTask的区别

    java中有Future和FutureTask这两个类 Future是一个接口,代表可以取消的任务,并可以获得任务的执行结果 FutureTask 是基本的实现了Future和runnable接口  ...

  9. String 是最基本的数据类型吗?

    不是. Java中基本数据类型只有8个:byte.short.int.long.float.double.char.boolean:除了基本类型(primitive type),剩下都是引用类型(re ...

  10. 我们能自己写一个容器类,然后使用 for-each 循环码?

    可以,你可以写一个自己的容器类.如果你想使用 Java 中增强的循环来遍历, 你只需要实现 Iterable 接口.如果你实现 Collection 接口,默认就具有该属性.