安装环境:
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,也能看到数据已经同步。