mysql

1、拓扑结构

mysql集群有如下三层:

  • 应用程序层:负责与mysql服务器通信的各种应用程序。
  • Mysql服务器层:处理SQL命令,并与NDB存储引擎通信和Mysql服务器。
  • NDB集群组件层:NDB集群组件有时也称数据节点,负责处理查询,然后将结果返回给mysql服务器。
  • Management层:负责管理SQL与NDB节点

拓扑结构图如下所示:


Management:192.168.0.10
NDB节点:IP地址:192.168.0.20
NDB节点:IP地址:192.168.0.30
SQL节点:IP地址:192.168.0.20
SQL节点:IP地址:192.168.0.30

2、多机部署

2-1、初始化系统

每个节点都操作

systemctl disable firewalld

vim  /etc/selinux/config

SELINUX=disabled

2-2、依赖包安装

yum install wget gcc gcc-c++ make
cmake ncurses-devel libtool zilib-devel –y
注:此处cmake是mysql
5.5之后版本所必需的,5.5之后的版本将cmake取代configure;

2-3、mysql管理节点

vim .../mysql-cluster/config.ini

[ndbd
default]

# Options
affecting ndbd processes on all data nodes:

NoOfReplicas=2    # Number of replicas

DataMemory=80M    # How much memory to allocate for data
storage

IndexMemory=18M   # How much memory to allocate for index
storage

#ServerPort=2202   # This the default value; however, you can
use any

[ndb_mgmd]

#
Management process options:

NodeId=1

HostName=192.168.1.150           # Hostname or IP address of MGM node

DataDir=/var/lib/mysql-cluster  # Directory for MGM node log files

[ndbd]

HostName=192.168.1.151           # Hostname or IP address

NodeId=2                      # Node ID for this data
node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[ndbd]

# Options
for data node "B":

HostName=192.168.1.152          # Hostname or IP address

NodeId=3                        # Node ID for this data
node

DataDir=/usr/local/mysql/data   # Directory for this data node's data files

[mysqld]

NodeId=4

HostName=192.168.1.153  # Hostname or IP address

[mysqld]

NodeId=5

HostName=192.168.1.154

2-4、ndb节点(数据节点)

vim /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

user=mysql

symbolic-links=0

ndbcluster

ndb-connectstring=192.168.1.150

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[mysql_cluster]

ndb-connectstring=192.168.1.150

初始化数据库:

mysql_install_db --user=mysql
--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

会初始化mysql的data目录,并且创建那些系统表。
同样也会初始化系统表空间并且关联innodb表与数据结构。

chown-R mysql.mysql /usr/local/mysql

2-5、SQL节点

vim /etc/my.cnf

[client]

socket=/usr/local/mysql/sock/mysql.sock

[mysqld]

ndbcluster

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

ndb-connectstring=192.168.1.150

[mysql_cluster]

ndb-connectstring=192.168.1.150

mysql_install_db --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data

chown-R mysql.mysql /usr/local/mysql

2-6、把mysql添加为系统服务

cp
mysql/support-files/mysql.server 
/etc/rc.d/init.d/

chmod
+x /etc/rc.d/init.d/mysql.server

chkconfig
--add mysql.server

3、Cluster启动

3-1、启动管理节点

首次启动需要加  --initial

mysql/bin/ndb_mgmd -f
/data/mysql-cluster/config.ini --initial

报错的话:

mysql/bin/ndb_mgmd --skip-config-cache -f
/data/mysql-cluster/config.ini --initial

3-2、启动数据节点

首次启动需要+
--initial

/data/mysql/bin/ndbd
--initial

3-3、启动 SQL 节点

/data/mysql/bin/mysqld_safe --user=mysql
&

3-4、查看集群状态

管理节点

ndb_mgm

show

4、单机部署

4-1、解压安装

tar zxvf
mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64.tar.gz

mv
mysql-cluster-gpl-7.6.6-linux-glibc2.12-x86_64/ mysql

mkdir sock

mkdir /var/lib/mysql

bin/mysql_install_db --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

cp support-files/mysql.server
/etc/init.d/mysql

vim  data/z3.pid

chmod 755 z3.pid

chown -R mysql.mysql mysql

4-2、配置

vim /etc/my.cnf

[client]

default-character-set=utf8

socket=/usr/local/mysql/sock/mysql.sock

#user=root

#password=123321

host=localhost

port=3306

[mysqld]

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/sock/mysql.sock

user=mysql

#
Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

skip-grant-tables
   //忽略登录密码

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/lib/mysql/mysqld.pid

4-3、启动

service mysql start(stop、status)

4-4、登录

mysql/bin/mysql -uroot -p

4-5、授权

grant  all  privileges  on  *.*  to  'user'@'%'  indetified  by  'password' with grant option         //授权

flush privileges  //使立即生效

linux下mysql部署的更多相关文章

  1. linux下MySQL表名忽略大小写设置

    最近公司项目的MySQL数据库要迁移到linux下,部署时日志总是显示报找不到一个表,用MYSQL查看明明有这个表.后来经百度,原来LINUX下的MYSQL默认是区分表名大小写的. 用命令查看当前是否 ...

  2. linux 下mysql的启动 、调试、排错

    Linux 下 MySQL 启动与关闭 说明 一.启动 1.1  MySQL 进程 可以用ps 命令查看进程: [root@rac2 ~]# ps -ef|grep mysql root     21 ...

  3. Linux下MySQL/MariaDB Galera集群搭建过程【转】

    MariaDB介绍 MariaDB是开源社区维护的一个MySQL分支,由MySQL的创始人Michael Widenius主导开发,采用GPL授权许可证. MariaDB的目的是完全兼容MySQL,包 ...

  4. Linux下MySql变量修改遇到的问题记录

    一.问题记录: 项目上需要使用mysql的过程来自动化构建一批数据,但是调用的时候总是报找不到表或者过程 二.排查过程: (1)首先终端连接mysql后发现,无论表还是过程在数据库中都是存在的,排除了 ...

  5. (原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

    « CloudStack+XenServer详细部署方案(10):高级网络功能应用 (总结)CentOS Linux 5.x在GPT分区不能引导的解决方法 » 2013-1 11 (原创)Linux下 ...

  6. Linux下MySQL报Table 'xxx' doesn't exist错误解决方法,表名存在大小写区分

    Linux服务器上在线装了个MySQL,但是部署web应用时一直报后台一直报错:Table 'xxx' doesn't exist. 本地测试一直都是正常的,同样的代码,同样的数据库,表是存在的,但是 ...

  7. linux下如何部署php项目?

    linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...

  8. Linux下MySQL忘记密码

    系统:CentOS6.6 64位 参考文档(截图请看原网址): Linux下MySQL忘记root密码怎么办_百度经验 http://jingyan.baidu.com/article/1709ad8 ...

  9. linux下mysql远程访问

    // */ // ]]>   linux下mysql远程访问 Mysql默认root用户只能本地访问,不能远程连接管理mysql数据库,但项目中必须要远程导 入导出数据,所以研究了一下. Tab ...

随机推荐

  1. Linux环境下levelDB源码编译与安装

    1.下载源码并编译 git clone https://github.com/google/leveldb.git cd leveldb //编译源码的时候需要安装cmake,并且版本需要大于3.9, ...

  2. 异步机制 - IO完成端口

    1 KQUEUE KeInitializeQueue VOID KeInitializeQueue( IN PKQUEUE  Queue, IN ULONG  Count  OPTIONAL ); l ...

  3. 7 AOP

    AOP:Aspect Oriented Programming 面向切面编程.AOP是对面向对象编程的一种补充,在运行时动态地将代码切入到类的指定方法.指定位置的编程思想.将不同的方法的同一位置抽象成 ...

  4. KVM——以桥接的方式搭建虚拟机网络配置

    以桥接的方式搭建虚拟机网络,其优势是可以将网络中的虚拟机看作是与主机同等地位的服务器. 在原本的局域网中有两台主机,一台是win7(IP: 192.168.0.236),一台是CentOS7(IP: ...

  5. Flutter移动电商实战 --(26)列表页_使用Provide控制子类-2

    主要实现功能,点击一级分类,二级分类跟着变.这里主要用我们的provide 新建provide provide文件夹下创建:child_category.dart 事件上就是这个实体:BxMallSu ...

  6. oracle传输表空间

    https://blog.csdn.net/ch7543658/article/details/39271135/ Oracle expdp/impdp常用性能优化方法 1.查看操作系统endiann ...

  7. kotlin中抽象类

    抽象类和接口很类似,抽象类不能被实例化需要使用abstract 关键字声明,抽象类实现接口后,接口中没有函数体的函数可以不重写,接口中的这些方法就自动被继承到实现接口的抽象类中,称为抽象方法 pack ...

  8. js 删除 按钮所在的行

    <body> <table id="delte"> <caption>简易购物车</caption> <tr> < ...

  9. 16. kubernetes RBAC

    16. kubernetes RBAC授权插件: Node,ABAC,RBAC,webhock RBAC: role based access contrl 基于角色的授权. 角色:(role)许可( ...

  10. linux:解决SSH连接Linux超时自动断开

    用SSH登录到Linux的时候,由于默认的连接超时时间很短,经常断开! 1.修改文件 # vi /etc/ssh/sshd_config 2.重启sshd服务 # /etc/init.d/sshd r ...