mysql 双机负载架设方法

来源:互联网 发布:友情链接交换平台源码 编辑:程序博客网 时间:2024/06/14 06:18
 

mysql 双机负载架设方法

server1:192.168.0.201
server2:192.168.0.202
server3:192.168.0.206

Server1和Server2作为实际配置Mysql负载的服务器。对于作为管理节点的Server3则要求较低,只需要对Server3的系统进行很小的调整,并且

无需安装Mysql,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其它服务。

在Server1和Server2上安装Mysql
注意:需要mysql的max版本!
以下步骤需要在Server1和Server2上各做一次
首先下载mysql-max-5.0.27-linux-i686-glibc23.tar.gz(这个大家可以百度一下不需要我提供下载地址了吧?)
将mysql-max-5.0.27-linux-i686-glibc23.tar.gz下载到Server1和Server2
这里我放置在/usr/local/目录下了。
进行安装:
-----------SSH连接到server1和server2-------------
[root@server1 /]# cd /usr/local  //进入local目录
[root@local /]# groupadd mysql //建立mysql用户组
[root@local /]# useradd -g mysql mysql //创建mysql帐号
[root@local /]# tar -zxvf mysql-max-5.0.27-linux-i686-glibc23.tar.gz  //解压缩mysql
[root@local /]# rm -f mysql-max-5.0.27-linux-i686-glibc23.tar.gz  //删除压缩包
[root@local /]# mv mysql-max-5.0.27-linux-i686-glibc23 mysql  //将文件夹重新命名为mysql
[root@local /]# cd mysql  //进入解压好的mysql目录
[root@mysql /]# scripts/mysql_install_db --user=mysql  安装mysql
[root@mysql /]# chown -R root . //将文件属性归属给root用户
[root@mysql /]# chown -R mysql data  //这个不用说了
[root@mysql /]# chgrp -R mysql . //变更目录的所属群组为mysql
[root@mysql /]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld //将mysql.server拷贝mysqld
[root@mysql /]# chmod +x /etc/rc.d/init.d/mysqld  //给予文件或目录执行权限
[root@mysql /]# cp support-files/my-large.cnf /etc/my.cnf //也是拷贝
[root@mysql /]# chkconfig --add mysqld  //将mysqld添加为系统服务
----------------此时不要启动mysql-----------------

----------------安装配置管理节点服务器(Server3)
[root@server3 /]# mkdir /usr/src/mysql-mgm  //创建目录mysql-mgm
将mysql-max-5.0.27-linux-i686-glibc23.tar.gz上传到mysql-mgm目录下
[root@server3 /]# cd /usr/src/mysql-mgm    //进入mysql-mgm目录
[root@mysql-mgm /]# tar -zxvf mysql-max-5.0.27-linux-i686-glibc23.tar.gz  //解压
[root@mysql-mgm /]# rm mysql-max-5.0.27-linux-i686-glibc23.tar.gz  //删除
[root@mysql-mgm /]# cd mysql-max-5.0.27-linux-i686-glibc23  //....
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# mv bin/ndb_mgm .
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# mv bin/ndb_mgmd .
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# chmod +x ndb_mg*
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# mv ndb_mg* /usr/bin
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# cd     //回到服务器根目录
[root@mysql-max-5.0.27-linux-i686-glibc23 /]# rm -rf /usr/src/mysql-mgm

----------------为这台管理节点服务器建立配置文件--------
[root@server1 /]# mkdir /var/lib/mysql-cluster
[root@server1 /]# cd /var/lib/mysql-cluster
[root@mysql-cluster /]# vi config.ini  //创建编辑config.ini文件

  [NDBD DEFAULT]
  NoOfReplicas=2  //
  [MYSQLD DEFAULT]
  [NDB_MGMD DEFAULT]
  [TCP DEFAULT]
  # Managment Server
  [NDB_MGMD]
  HostName=192.168.0.206
  # Storage Engines
  [NDBD]
  HostName=192.168.0.201
  DataDir= /var/lib/mysql-cluster
  [NDBD]
  HostName=192.168.0.202
  DataDir=/var/lib/mysql-cluster
  [MYSQLD]
  [MYSQLD]   //此处注意,有几个节点服务器就要增加几个[MYSQLD]
按ESC键后输入:wq 回车 此为保存退出
[root@mysql-cluster /]# ndb_mgmd  //启动节点服务器 注:最好在/var/lib/mysql-cluster目录下输入ndb_mgmd执行

接下来需要配置集群服务器并启动mysql
在Server1和Server2中都需要进行如下操作
[root@server1 /]# vi /etc/my.cnf 将此文件原内容清空
    # 输入如下内容  
  [mysqld]
  ndbcluster
  ndb-connectstring=192.168.0.206
  [mysql_cluster]
  ndb-connectstring=192.168.0.206
按ESC键后输入:wq 回车 此为保存退出
[root@server1 /]# mkdir /var/lib/mysql-cluster
[root@server1 /]# cd /var/lib/mysql-cluster
[root@mysql-cluster /]# /usr/local/mysql/bin/ndbd --initial /var/lib/mysql-cluster/config.ini
[root@mysql-cluster /]# /etc/rc.d/init.d/mysqld start  //启动MYSQL
  可以将/usr/local/mysql/bin/ndbd加入/etc/rc.local中实现开机自动启动
  注意:只有在第一次启动ndbd时或者对Server3的config.ini进行改动后才需要使用--initial参数启动。

-----------回到管理节点服务器Server3上,并启动管理终端----------
[root@server3 /]# /usr/bin/mdb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @192.168.0.201  (Version: 5.0.27, Nodegroup: 0, Master)
id=3    @192.168.0.202  (Version: 5.0.27, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.206  (Version: 5.0.27)

[mysqld(API)]   2 node(s)
id=4    @192.168.0.201  (Version: 5.0.27)
id=5    @192.168.0.202  (Version: 5.0.27)

ndb_mgm>

如果上面没有问题,现在开始测试Mysql,注意:本文中对于mysql并没有设置root密码
推荐你自己设置server1和server2的Mysql root密码

[root@server1 /]#/usr/local/mysql/bin/mysql -u root -p

mysql> use test;
mysql> CREATE TABLE ctest(i INT) ENGINE=NDBCLUSTER;(注意表引擎,也可以写成ENGINE=NDB;)
mysql> INSERT INTO ctest() VALUES(1);
mysql> SELECT * FROM ctest;
应该可以看到 1 row returned信息(返回数值1)
如果上述正常,则换到server2上重复上面的测试,观察效果。如果成功则在server2中执行INSERT在换回到server1中执行SELECT * FROM

ctest;观察是否工作正常返回值是否有变化。


将Server1或者Server2的网线拔掉,观察另一台集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。

之后在server3上执行管理终端命令show会看到破坏的那台服务器的状态。
测试完成后,只需要重新启动被破坏服务器的ndbd进程即可。
[root@server1 /]# /usr/local/mysql/bin/ndbd
注意:前面说过了,此时是不用加--initial参数的。
至此,mysql集群就配置完成了,mysql负载均衡功能完成!

原创粉丝点击