系统环境采样
(来自其他机器,直接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. npm vue路由配置

    npm vue路由 复习:1.README.md文件:保存如何使用的命令 (1)     npm install:拷项目时可以不拷node_modules文件,运行该命令时,会自动下载node_mod ...

  2. Python:用pyinstrument做性能分析

    导引 在计算密集型计算或一些Web应用中,我们常常需要对代码做性能分析.在Python中,最原始的方法即是使用time包中的time函数(该函数以秒为计时单位): from time import s ...

  3. MASA Blazor入门这一篇就够了

    1.什么是Blazor? 有什么优势? ASP.NET Core Blazor 简介 Blazor 是一个使用 Blazor 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScr ...

  4. 4月19日 python学习总结 套接字模块的使用

    服务端: import socket phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 买电话 phone.bind(('127.0.0 ...

  5. chili

    靶机准备 首先将靶机ova文件导入 网络模式改为NAT 扫描ip netdiscover -r 192.168.164.0/24 kali:192.168.164.137 渗透测试 扫描端口 nmap ...

  6. Windows 8下完美使用Virtual PC 2007(virtual pc 2007 64 win8 兼容性)

    Windows 8下完美使用Virtual PC 2007(virtual pc 2007 64 win8 兼容性) 一.从微软的官方网站下载Virtual PC 2007 SP1英文版,文件名为se ...

  7. 【自动化基础】手把手教零基础小白搭建APP的UI自动化环境

    前言 帮助零基础小白一步步搭建UI自动化环境,完成Python+Appium+模拟器/真机的UI自动化环境搭建. 环境准备: jdk1.8.0 sdk Node.js appium python Ap ...

  8. CF17E Palisection(manacher/回文树)

    CF17E Palisection(manacher/回文树) Luogu 题解时间 直接正难则反改成求不相交的对数. manacher求出半径之后就可以差分搞出以某个位置为开头/结尾的回文串个数. ...

  9. MindSpore尝鲜之Vmap功能

    技术背景 Vmap是一种在python里面经常提到的向量化运算的功能,比如之前大家常用的就是numba和jax中的向量化运算的接口.虽然numpy中也使用到了向量化的运算,比如计算两个numpy数组的 ...

  10. 当一个线程进入一个对象的 synchronized 方法 A 之后, 其它线程是否可进入此对象的 synchronized 方法 B?

    不能.其它线程只能访问该对象的非同步方法,同步方法则不能进入.因为非静 态方法上的 synchronized 修饰符要求执行方法时要获得对象的锁,如果已经进入 A 方法说明对象锁已经被取走,那么试图进 ...