系统环境采样
(来自其他机器,直接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. 「科技」在线 O(1) 逆元

    问题:固定模数 \(p\),多次回答某个数 \(a\) 的逆元.强制在线. 本文提供一个 \(O(p^{\frac{2}{3}})\) 预处理,\(O(1)\) 查询的做法. 首先定义一下 Farey ...

  2. MySQL报错 SQL ERROR:1064 ,SQLState:42000

    使用mysql新增数据时报错,具体信息如图所示: 错误原因: 所建的表中 表名或字段名与数据库关键字冲突 解决办法 可以根据报错信息,查看错误的具体位置,找到数据库中对应的字段,查询是否与关键字(不分 ...

  3. 前端面试题(js)

    js 基础面试题 css 面试题 js 面试题 JavaScript 有几种类型的值?,你能画一下他们的内存图吗 原始数据类型(Undefined,Null,Boolean,Number.String ...

  4. 【公告】淘宝 npm 域名即将切换 && npmmirror 重构升级

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前言 本文将包括两部分内容: 淘宝 npm 域名即将停止解析 npmmirror 镜像站大重构升级 原淘宝 npm 域名即将停止解析 正如在< ...

  5. K8S搭建自动化部署环境 Jenkins下载、安装和启动

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.jenkins 下载 jenkins下载地址:https://jenkins.io/zh/download/ 如下图,左边是稳定版本,右边是每 ...

  6. Flask 之 WebSocket

    http:是一个协议 规定:数据传输格式 -/r/n/r/n 一次的请求,一次的响应,断开了 短链接 无状态 服务器收到的请求,做出的响应给客户端 客户端主动向服务器发起请求 基于socket sen ...

  7. Colbalt Strike之CHM木马

    一.命令执行(calc)木马生成 1.生成木马 首先创建一个根目录,文件名为exp 在文件夹里创建两个目录和一个index.html文件 在两个目录里分别创建txt文件或html文件 index.ht ...

  8. Dubbo 如何优雅停机?

    Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用 kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才 会执行.

  9. jvm-learning-运行时数据区-整体

    在jdk8之后之前的方法区有叫做元数据. 每个JVM只有一个Runtime实例,即为运行时环境,相当于内存结构种的运行时数据区 线程 线程是一个程序里的运行单元,JVM允许一个应用有多个线程并行的执行 ...

  10. screen--后台不挂断运行

    方法一:1.进入项目目录下,运行下面程序:nohup python manage.py runserver 0.0.0.0:5008 &nohup(no hang up)用途:不挂断的运行命令 ...