docker 中 安装配置 mysqlcluster(arm)
1:创建两个docker container
这里我使用给指定 container ip的形式创建:
查看容器网络
docker network ls
创建一个新的bridge网络
docker network create --driver bridge --subnet=172.0.12.0/16 --gateway=172.0.1.1 mytestnet
查看网络详情
docker network inspect mytestnet

创建容器,并指定ip
docker run -e TZ="Asia/Shanghai" --privileged -itd -h node1 --name mysqlnode1 --network=mytestnet --ip 172.0.12.1 docker.io/centos
docker run -e TZ="Asia/Shanghai" --privileged -itd -h node2 --name mysqlnode2 --network=mytestnet --ip 172.0.12.2 docker.io/centos
node1 作为一个管理节点 SQL、NDB服务器
node2 作为一个 SQL 、NDB服务器
分别进入 docker 容器
docker attach <container_id>
2:contianer中安装一些依赖:
yum -y install make git gcc-c++ cmake bison-devel ncurses-devel perl per-devel ncurses-devel bison libaio-devel java autoconf vim wget net-tools
检查有没有安装过mysql和mariadb,有的话先卸载,关闭防火墙,selinux (该镜像不涉及忽略)
3:下载安装mysqlcluster
3.1:编译准备
下载tar包
wget -c http://mirrors.sohu.com/mysql/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.25.tar.gz
tar -zxvf mysql-cluster-gpl-7.4.25.tar.gz
创建数据存放目录
mkdir -p /data/program/mysqlCluster/{bin,ndbdata,tmp}
chown -R mysql:mysql /data/program/mysqlCluster
新建mysql用户及用户组
groupadd mysql
useradd -g mysql -s /usr/sbin/nologin mysql
进入解压文件中,替换文件(原安装包不支持arm)
分别替换
./storage/ndb/memcache/extra/libevent/epoll_sub.c
./storage/ndb/src/kernel/vm/mt-asm.h
https://pan.baidu.com/s/1ZGY8r0crBHLOLaa4DKIgWA 58uu
https://pan.baidu.com/s/1AGjGklu8SF97X5x2wcYEqA 2t48
3.3 编译
执行下列代码:
cmake -DBUILD_CONFIG=mysql_release \
-DCMAKE_BUILD_TYPE=debug \
-DCMAKE_INSTALL_PREFIX=/data/program/mysqlCluster \
-DMYSQL_UNIX_ADDR=/data/program/mysqlCluster/tmp/mysql-cluster.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/program/mysqlCluster/ndbdata \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
make && make install
添加环境变量:
export PATH=$PATH:/data/program/mysqlCluster/bin
3.4 安装
cd /data/program/mysqlCluster/
ln -s bin/mysqld-debug bin/mysqld
cp support-files/mysql.server /etc/init.d/mysqld
chmod –R 755 /etc/init.d/mysqld
按理说mysql添加到/etc/init.d目录后就可以启动了,但是要启动集群,还需要配置管理节点和数据节点,mysql暂缓启动。
(启动 mysqlcluster --> Management Node > Data Node > SQL Node)
3.5:管理节点配置(mysqlnode1)
创建配置文件
mkdir -p /data/program/mysqlCluster/etc
vim /data/program/mysqlCluster/etc/config.ini
写入配置
[ndb_mgmd default]
datadir=/data/program/mysqlCluster/ndbdata
[ndbd default]
NoOfReplicas = 2
DataMemory = 200M
IndexMemory = 20M
datadir=/data/program/mysqlCluster/ndbdata
[ndb_mgmd]
NodeId = 1
HostName=172.0.12.1
datadir=/data/program/mysqlCluster/ndbdata [ndbd]
NodeId = 11
HostName=172.0.12.1
datadir=/data/program/mysqlCluster/ndbdata [ndbd]
NodeId=12
HostName=172.0.12.2
datadir=/data/program/mysqlCluster/ndbdata [mysqld]
NodeId = 21
HostName=172.0.12.1
[mysqld]
NodeId=22
HostName=172.0.12.2
[mysqld]
[mysqld]
[mysqld]
启动管理节点
ndb_mgmd -f /data/program/mysqlCluster/etc/config.ini --initial (--initial 首次加载/data/program/mysqlCluster/etc/config.ini文件有改变,其它时候不要加,除非是在备份、恢复或配置变化后重启时,其他时候不要加,不然数据就清空)
#如果有改动要加上
rm -rf /data/program/mysqlCluster/mysql-cluster/ndb_1_config.bin.1
ndb_mgmd -f /data/program/mysqlCluster/etc/config.ini
查看集群状态:
ndb_mgm
ndb_mgm> show

关闭管理节点
ndb_mgm> shutdown
3.6 数据节点配置 (mysqlnode1 mysqlnode2)
配置数据节点
cp /data/program/mysqlCluster/support-files/ my-default.cnf /etc/my.cnf
vim /etc/my.cnf sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
ndbcluster
ndb-connectstring=172.0.12.1
[mysql_cluster]
ndb-connectstring=172.0.12.1
启动数据节点
ndbd --initial (--initial 首次加载)
3.7 sql节点配置(node1 node2)
vim /etc/my.cnf [mysqld]
basedir =/data/program/mysqlCluster
datadir =/data/program/mysqlCluster/ndbdata
socket=/data/program/mysqlCluster/tmp/mysql-cluster.sock ndbcluster
ndb-connectstring = 172.0.12.1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set = utf8
[mysqld]
character_set_server=utf8
[mysql_cluster]
ndb-connectstring = 172.0.12.1
[NDB_MGM]
connect-string=172.0.12.1
启动sql节点(可以启动mysql了)
/etc/init.d/mysqld {start stop restart }
设置密码
mysql -u root -p (登录无密码)
mysql> SET PASSWORD = PASSWORD('123456');
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
至此配置完成!
test
1 从node1数据节点登陆MYSQL
mysql> create database zxztest ;
Query OK, 1 row affected (0.03 sec)
mysql> use zxztest;
Database changed
mysql> create table test1(id int,name varchar(10)) engine=ndb ;
Query OK, 0 rows affected (0.15 sec)
mysql> insert into test1 values(1,'XYT');
Query OK, 1 row affected (0.02 sec)
mysql> select * from test1 ;
+------+------+
| id | name |
+------+------+
| 1 | XYT |
+------+------+
1 row in set (0.00 sec)
2 登陆node2数据结点,进行验证
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| ndbinfo |
| performance_schema |
| test |
| zxztest |
+--------------------+
6 rows in set (0.04 sec)
mysql> use zxztest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from test1 ;
+------+------+
| id | name |
+------+------+
| 1 | XYT |
+------+------+
1 row in set (0.00 sec)
————————————————
参考:https://blog.csdn.net/xiayutai1/article/details/51933234
docker 中 安装配置 mysqlcluster(arm)的更多相关文章
- 在Docker中安装配置Oracle12c并实现数据持久化
在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...
- elk系列教程:docker中安装配置elk
elasticSearch Docker安装elasticsearch: docker pull docker.io/elasticsearch:7.2.0 启动: docker run -p 920 ...
- Docker中安装配置Oracle数据库
本文使用的OS是Ubuntu([16.04.1_server][1])[注:Ubuntu是安装在vmware虚拟机上的]. 其他的Oracle连接工具:[sqldeveloper-4.1.5.21.7 ...
- 在Docker中安装配置Oracle11g并实现数据持久化
1.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 镜像详情:https://dev.aliyun.com/ ...
- docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目
docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...
- Windows和Centos下Docker的安装配置
Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...
- Docker容器安装配置SQLServer服务(Linux)
一:前言 随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要 ...
- Linux或Docker里安装minio / Docker中安装h5ai
此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...
- Eclipse中安装配置Tomcat
Eclipse(4.4.x及以上)中安装配置Tomcat 以下配置说明全部针对免安装版本 基于tomcat的安装目录和运行目录是可以不同的,本文都会进行说明 首先简单介绍一下tomcat的目录结构,一 ...
随机推荐
- VSCode+C++环境搭建
date: 2019-10-05 VSCode+C++环境搭建 其实并不完整,毕竟我也只是一个OIer,并不会很高深的东西.(众所周知,OIer主业是软件开发) 安装VSCode 下载安装包 这个很简 ...
- C# 让你解决方案乱七八糟的DLL放入指定文件夹
嗯,大家的解决方案可能会有许多dll,这样不美观,而且也麻烦. 很多小白都不知道如何将这些dll放到如自己程序的bin文件夹下. 本渣今天来试着将dll复制到指定的文件夹下~ 比如我之前做的一个Win ...
- 使用opencv和numpy实现矩阵相乘和按元素相乘 matrix multiplication vs element-wise multiplication
本文首发于个人博客https://kezunlin.me/post/1e37a6/,欢迎阅读最新内容! opencv and numpy matrix multiplication vs elemen ...
- WPF TreeView 虚拟化-设置滚动到选中项
前言 列表滚动到具体的数据项? ListBox提供了简易快捷的滚动定位函数ScrollIntoView. TreeView树状结构列表,则没有此类方法,无法与ListBox一样,直接设置滚动到具体的数 ...
- 【LeetCode】6. Z 字形变换
题目 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C ...
- 操作系统篇之Linux命令操作和redis安装以及基本使用
电脑操作系统 : windows7,8,10,xp,win98 操作系统 : linux ax unix 以后开发项目是部署在服务器上,服务器一般采用linux. linux的优点:系统稳定,操作速度 ...
- cmdb项目-1
1.什么是cmdb 配置管理数据库 ,存储基础设备的各种信息配置等 CMDB可以存储并自动发现整个IT网络上的各种信息,比如一个IT网络上有多少台服务器.多少存储.设备的品牌.资产编号.维护人员.所属 ...
- 关于javascript中变量及函数的提升
javascript中变量以及函数的提升,在我们平时的项目中其实还是挺常用的,尤其是大型项目中,不知不觉就会顺手添加一些变量,而有时候自己的不小心就会酿成一些不必要错误,趁有时间整理一下自己对于js中 ...
- JavaScript动态加载script方式引用百度地图API 拓展---JavaScript的Promise
上一篇博客JavaScript动态加载script方式引用百度地图API,Uncaught ReferenceError: BMap is not defined 这篇文章中我接触到一个新的单词:Pr ...
- 那些你不知道的Mac截屏功能
今天介绍Mac的截图功能,如果你以为Shift + Command + 3 / 4就是Mac全部的截屏功能的话,那你小看Mac了.它远比你想得强大. 1.Shift + Cmd + 3 ——截取全屏 ...