永不放弃,一切皆有可能!!!
只为成功找方法,不为失败找借口!
mysql集群安装(centos)
mysql cluster :
1. 基于NDB Cluster 的分布式数据库系统
2. mysql集群中各服务器节点不共享数据
3. 在mysql cluster中节点指的是进程,区别于其他的集群中节点指的是计算机的情况, 因而在单台计算机上可以有任意多的节点
4. 三种节点: 1)管理节点: 管理cluster内其他节点; 包括启动,停止, 备份,配置等;
在启动其他节点前需要先启动管理节点
管理节点不应是一台,否则如果宕机会导致集群不可用
2)数据节点: 保存cluster数据,
如果有两个副本,每个副本有两个片段,那么就有4个数据节点,依此类推
3)sql节点: 用于访问cluster中数据
在最低的mysql cluster配置中,至少应该有三个节点
5. 启动方式:
管理节点: ndb_mgmd 数据节点: ndbd sql节点: mysqld_ndbcluster ,更改my.cnf配置文件后可用mysqld启动,下面会有说明
6. 默认端口:
管理节点: 1186 数据节点: 2202
准备:
1. mysql下载链接: http://mysql.mirror.kangaroot.net/Downloads/MySQL-Cluster-7.3/
使用 Pietty工具连接linux
和 winscp工具进行文件拷贝
2. 3台服务器: centos 6.4, 网络连接:bridged
192.168.1.136 : 管理节点
192.168.1.95: 数据节点
192.168.1.62: sql节点
3. 安装位置: /usr/local/mysql
数据位置: /usr/local/mysql/data
日志位置: /usr/local/mysql/log
4. 相关centos指令:
查看centos版本: cat /etc/redhat-release 查看是否已安装mysql: rpm -qa | grep mysql 查看服务状态: service mysql staus 关闭当前sql服务: /etc/init.d/mysqld stop 启动当前sql服务: /etc/init.d/mysqld start 重启sql服务: /etc/init.d/mysqld restart 查看进程是否关闭: ps -ef | grep mysql 卸载已安装的mysql: rpm -e --allmatches --nodeps mysql mysql-server 删除相关目录: rm -rf /usr/local/mysql rm -rf /var/mysql rm -rf /var/lib/mysql 组和用户添加: groupadd mysql useradd mysql -g mysql 解压: tar -zxvf mysql-cluster-gpl-7.3.4-linux-glibc2.5-i686.tar.gz 重命名文件夹: mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-i686 mysql 更改文件或文件夹所有者: chown mysql:mysql mysql (mysql: mysql中前面为用户,后面为组) 运行脚本: scripts/mysql_install_db --user=mysql (--user=mysql指示用户身份为mysql组) 创建文件夹: mkdir /var/lib/mysql-cluster(加上-p时如果目录不存在则新建一个目录) 创建或者编辑文件: vi + /var/lib/mysql-cluster/config.ini vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename vi filename....filename :打开多个文件,依次进行编辑 永久关闭防火墙:chkconfig --level 35 iptables off 查看防火墙状态: /etc/init.d/iptables status
安装:
1. 安装前检查是否已经安装,如已安装卸载重新安装
查看是否已安装mysql: rpm -qa | grep mysql 查看服务状态: service mysql staus 关闭当前sql服务: /etc/init.d/mysqld stop 启动当前sql服务: /etc/init.d/mysqld start 重启sql服务: /etc/init.d/mysqld restart 查看进程是否关闭: ps -ef | grep mysql 卸载已安装的mysql: rpm -e --allmatches --nodeps mysql mysql-server 删除相关目录: rm -rf /usr/local/mysql rm -rf /var/mysql rm -rf /var/lib/mysql
2. 管理节点安装
在192.168.1.136 上安装
[[email protected] ~]# groupadd mysql //添加组 [[email protected] ~]# useradd mysql -g mysql //添加用户 [[email protected] ~]# cd /usr/local [[email protected] local]# tar -zxvf mysql-cluster-gpl-7.3.4-linux-glibc2.5-i686.tar.gz //解压 [[email protected] local]# mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-i686 mysql //重命名
[[email protected] local]# chown mysql:mysql mysql //更改文件夹所有者 [[email protected] local]# cd mysql [[email protected] mysql]# scripts/mysql_install_db --user=mysql //安装
3.管理节点配置
[[email protected] mysql]# cd ~ [[email protected] ~]# mkdir /var/lib/mysql-cluster [[email protected] ~]# mkdir /usr/local/mysql/log [[email protected] ~]# cd /var/lib/mysql-cluster [[email protected] mysql-cluster]# vi + /var/lib/mysql-cluster/config.ini [[email protected] mysql-cluster]# vi + /var/lib/mysql-cluster/config.ini
config.ini文件内容如下:
[NDBD DEFAULT] NoOfReplicas=1 [NDB_MGMD] #设置管理节点服务器 HostName=192.168.1.136 DataDir=/usr/local/mysql/data [NDBD] #设置存储节点服务器(NDB节点) HostName=192.168.1.95 DataDir=/usr/local/mysql/data #[NDBD] #第二个NDB节点 [MYSQLD] #设置SQL节点服务器 HostName=192.168.1.62 #[MYSQLD] #第二个SQL节点
启动管理节点:
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini //-f表示后后面的参数是启动的配置参数文件
我们看到管理节点的端口1186已被监听:
关闭管理节点:
[[email protected] ~]# /usr/local/mysql/bin/ndb_mgm -e shutdown Connected to Management Server at: localhost:1186 1 NDB Cluster node(s) have shutdown. Disconnecting to allow management server to shutdown.
4. 数据节点和sql节点安装
1) 192.168.1.95: 数据节点, 192.168.1.62:sql节点 上分别以上面同样的方式新建用户和组
groupadd mysql useradd mysql -g mysql
2) 将管理节点/usr/local/mysql 目录复制至数据节点和节点
5. sql节点配置:
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf [[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
cd /etc vi my.cnf 添加如下内容: [MYSQLD] ndbcluster ndb-connectstring=192.168.1.136 ndb-connectstring=192.168.1.136 [NDB_MGM] connect-string=192.168.1.136
sql节点启动: service mysqld start(需启动管理节点)
[[email protected] mysql]# service mysqld start Starting MySQL............................................................................................................................. SUCCESS!
sql节点关闭: /usr/local/mysql/bin/mysqladmin -uroot shutdown
6. 数据节点配置
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf [[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
cd /etc/ vi my.cnf 添加: [MYSQLD] ndbcluster ndb-connectstring=192.168.1.136 [MYSQL_CLUSTER] ndb-connectstring=192.168.1.136 [NDB_MGM] connect-string=192.168.1.136
数据节点启动:
/usr/local/mysql/bin/ndbd --initial ( 需要启动管理节点)
[[email protected] support-files]# /usr/local/mysql/bin/ndbd --initial 2014-06-22 17:31:08 [ndbd] INFO -- Angel connected to ‘192.168.1.136:1186‘ 2014-06-22 17:31:08 [ndbd] INFO -- Angel allocated nodeid: 2
测试:
在数据节点上创建数据库
[[email protected] mysql]# /etc/rc.d/init.d/mysqld status [[email protected] localhost ~]# /etc/rc.d/init.d/mysqld start [[email protected] localhost ~]# /usr/local/mysql/bin/mysql –u root -p mysql> show database; mysql> create database wishtestdb; mysql> use wishtestdb; mysql> create table table1_test (id varchar(50), name varchar(100)); mysql> insert into table1_test(‘abc’, ‘wish’);
在sql节点上查看数据:
mysql> use wishtestdb; mysql> select * from table1_test;