您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页mysql集群

mysql集群

来源:华佗小知识
安装环境:

vmware workstation 8.0.2 rhs5.5

Server1: 192.168.146.131 hostname:db01 做一个数据节点,SQL节点,管理节点 Server2: 192.168.146.132 hostname:db02 做一个数据节点,SQL节点

以下操作在两台机器是一致的:

如果能联网 yum remove mysql 否则手动删除mysql 先看看都安装了什么包: # rpm -qa|grep MySQL

然后把这些包都卸载掉

rpm -e MySQL-server-5.5.21-1.linux2.6 rpm -e MySQL-client-5.5.20-1.linux2.6

1. 新建用户组mysql以及用户mysql

# groupadd mysql

# useradd -g mysql mysql

2.下载压缩包-解压--拷贝到:usr/local 名字改为mysql

#cd /usr/local/mysql

#chown –R root . //把mysql的目录设置成所有者为root #chown –R mysql /data //把data目录设置所有者为mysql #chgrp –R mysql . //改成所属组为mysql #cd scripts/

安装成功:

[root@db01 scripts]# Installing MySQL system tables... OK

Filling help tables... OK

To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'

/usr/local/mysql/bin/mysqladmin -u root -h db01 password 'new-password'

Alternatively you can run:

/usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!

4.设置mysql服务为开机自启动:

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

chmod a+x /etc/rc.d/init.d/mysqld

vi /etc/rc.d/init.d/mysqld

在第三行后增进:

# Comments to support chkconfig on RedHat Linux # chkconfig: 2345 90 90 # description:mysql server

chkconfig --add mysqld

#vi /etc/profile 最后面加上两句

PATH=$PATH:/usr/local/mysql/bin export PATH

========================================================以上两台机器一致,华丽丽的分割线,表示相同操作完毕了===================================

五:配置

1、配置管理节点

拷贝/usr/local/mysql/bin/ndb_mgm,ndb_mgmd两个文件到/usr/local/bin #cp /usr/local/mysql/bin/ndb_mgm* /usr/local/bin #mkdir /var/lib/mysql-cluster

#vim /var/lib/mysql-cluster/config.ini

[ndbd default]

NoOfReplicas=1 #每个数据节点的镜像数量

DataMemory=200M #每个数据节点中给数据分配的内存 IndexMemory=20M #每个数据节点中给索引分配的内存

[ndb_mgmd] #配置管理节点 NodeId=1

hostname=192.168.146.131

datadir=/var/lib/mysql-cluster/ #管理节点数据(日志)目录

[ndbd] #数据节点配置 NodeId=2

hostname=192.168.146.132

datadir=/usr/local/mysql/data/ #数据节点目录 [ndbd] NodeId=3

hostname=192.168.146.131 datadir=/usr/local/mysql/data/

[mysqld]

hostname=192.168.146.131 [mysqld]

hostname=192.168.146.132

[mysqld] #一定要留一个空的,以备扩展使用,否则会出现Failed to allocate nodeid No free node id found for ndbd(NDB)错误 [mysqld]

注意:上面的标注一定不能在文件中体现,系统不认的!

NDBD DEFAULT]:表示每个数据节点的默认配置在每个节点的[NDBD]中不用再写这些选项,只能有一个。

[NDB_MGMD]:表示管理节点的配置,只有一个。 [NDBD]:表示每个数据节点的配置,可以有多个。

[MYSQLD]:表示SQL节点的配置,可以有多个,分别写上不同SQL节点的IP地址。

2、配置数据节点和SQL节点

mysql服务启动时会默认加载/etc/my.cnf作为其配置文件,修改192.168.146.132(db02)上的my.cnf [mysqld]

ndbcluster #运行NDB存储引擎 datadir=/usr/local/mysql/data basedir=/usr/local/mysql port=3306 [mysql_cluster]

ndb-connectstring=192.168.146.131 (db01)#声明管理节点

拷贝一份到另一台192.168.146.131 #scp /etc/my.cnf 192.168.146.131:/etc/

启动:

1.启动管理节点: #cd /usr/local/bin

# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini // ndb_mgmd

ndb_mgmd -f /var/lib/mysql-cluster/config.ini是mysqlcluster的管理服务器,后面的-f表示后面的参数是启动的参数配置文件。如果在启动后过了几天又添加了一个数据节点,这时修改了配置文件启动时就必须加上--initial参数,不然添加的节点不会作用在mysql cluster中

2、启动数据节点

安装后第一次启动数据节点时要加上--initial参数,其它时候不要加,除非是在备份、恢复或配置变化后重启时 #cd /usr/local/mysql/bin/ #./ndbd –initial

2012-03-28 02:01:38 [ndbd] INFO -- Angel connected to '10.32.33.120:1186' 2012-03-28 02:01:38 [ndbd] INFO -- Angel allocated nodeid: 3

出现这种信息表示启动成功.

3、启动SQL节点

#mysqld_safe --ndb_nodeid=4 --user=mysql &

4、客户端查看 #cd /usr/local/bin #.ndb_mgm

ndb_mgm> show

ndb_mgm> show Cluster Configuration ---------------------

[ndbd(NDB)] 2 node(s)

id=2 @192.168.146.132 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master) id=3 @192.168.146.131 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 1)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.146.131 (mysql-5.5.22 ndb-7.2.6)

[mysqld(API)] 4 node(s)

id=4 @192.168.146.132 (mysql-5.5.22 ndb-7.2.6) id=5 @192.168.146.131 (mysql-5.5.22 ndb-7.2.6) id=6 (not connected, accepting connect from any host) id=7 (not connected, accepting connect from any host)

7 测试。

1、从SQL节点A登录,创建数据库和表,进行简单测试。 mysql> create database zxztest ; mysql> use zxztest; Database changed

mysql> create table test1(id int,name varchar(10)) engine=ndb ; mysql> insert into test1 values(1,'zhaoxuezhi'); mysql> select * from test1 ; +------+---------+

| id | name | +------+---------+

| 1 | zhaoxuezhi | +------+---------+

登陆B节点,查看效果,库,表和数据已经同步。

从B节点插入一条数据,同样登陆A,也能看到数据已经同步。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务