Ubuntu進行mysql集羣
一、mysql單機測試
表ha 條數437326條
/*
未優性能優化的情況下
單臺mysql併發連數75個時爲最優:
單表執行6000個select、insert操作大約29S,
單表執行1000個select、insert操作大約7S,
單表執行1000個select操作大約4S,
單表執行1000個insert操作大約5S
*/
二、集羣部署mysql-cluster
http://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-installation.html
4.1、管理節點配置
root@hadoop0:/usr/local/mysql/mysql-cluster#more config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=128M
IndexMemory=32M
[tcp default]
#portnumber=2202
[ndb_mgmd]
#ndb-nodeid=1
hostname=172.17.0.2
datadir=/usr/local/mysql/mysql-cluster
[ndbd]
#ndb-nodeid=2
hostname=172.17.0.3
datadir=/usr/local/mysql/data
[ndbd]
#ndb-nodeid=3
hostname=172.17.0.4
datadir=/usr/local/mysql/data
[mysqld]
hostname=172.17.0.3
[mysqld]
hostname=172.17.0.4
[mysqld]
[mysqld]
4.2、數據節點配置
root@hadoop1:/etc/mysql# more my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
ndbcluster
skip-name-resolve
[mysql_cluster]
ndb-connectstring=172.17.0.2
4.3、sql節點配置
root@hadoop1:/etc/mysql# more my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
ndbcluster
skip-name-resolve
[mysql_cluster]
ndb-connectstring=172.17.0.2
四、mysql-cluster集羣啓動
4.1、管理節點啓動
shell> ndb_mgmd -f /usr/local/mysql/mysql-cluster/config.ini
查看集羣狀態
shell> ndb_mgm
-- NDB Cluster -- ManagementClient --
ndb_mgm> SHOW
Connected to Management Serverat: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.0.30 (Version: 5.7.16-ndb-7.5.5, Nodegroup: 0, *)
id=3 @192.168.0.40 (Version: 5.7.16-ndb-7.5.5, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.0.10 (Version: 5.7.16-ndb-7.5.5)
[mysqld(API)] 1 node(s)
id=4 @192.168.0.20 (Version: 5.7.16-ndb-7.5.5)
4.2、數據節點啓動
shell> ndbd
4.3、sql節點啓動
以用戶ROOT啓動,且在後臺運行。引用/etc/mysq/my.cnf文件作爲配置文件
shell>mysqld –-user=root &
Table 5.2 OptionFiles Read on Unix and Unix-Like Systems
File Name
Purpose
/etc/my.cnf
Global options
/etc/mysql/my.cnf
Global options
SYSCONFDIR/my.cnf
Global options
$MYSQL_HOME/my.cnf
Server-specific options (server only)
defaults-extra-file
The file specified with --defaults-extra-file, if any
~/.my.cnf
User-specific options
~/.mylogin.cnf
User-specific login path options (clients only)
4.4、Mysql修改root密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIEDBY '123456';
4.5、允許root遠程登陸
grant allprivileges on*.* to root@'%' identified by '123456';
4.6、root遠程登陸
shell>mysql –uroot –hipadress -p
五、lvs集羣負截均衡
https://my.oschina.net/bobo2cj/blog/203852
5.1、LVS Server
創建虛擬網絡:
# brctl addbr lvs (建立一個邏輯網段,名稱爲lvs)
# 安裝IPVS後,就可以配置LVS集羣了,首先在Director Server上綁定一個虛擬IP(也叫VIP),此IP用於對外提供服務,執行如下命令:
/sbin/ifconfiglvs $VIP broadcast $VIP netmask 255.255.255.255 up
# 然後給設備lvs指定一條路由,執行如下指令:
/sbin/routeadd -host $VIP dev lvs
分別在lbserver1、lbserver2上創建啓動腳本 (* 附錄B)
#!/bin/bash
vip=192.168.56.200
rs1=192.168.56.201
rs2=192.168.56.202
#clear ipvs tables
ipvsadm -C
#set LVS Server
ipvsadm -A -t $vip:80 -s rr
ipvsadm -a -t $vip:80 -r $rs1:80 -g -w 1 #-w表示權重,默認爲1
ipvsadm -a -t $vip:80 -r $rs2:80 -g #不加-w 1效果同上句
# update /etc/sysctl.conf,以下配置重啓後將復原
echo "1" >/proc/sys/net/ipv4/ip_forward #啓用ip轉發
echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects
echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects
#sysctl -p #查看sysctl的配置變化,可不執行
5.2、Real Server
分別在real server1、real server2上創建啓動腳本 (* 附錄B)
#!/bin/bash
vip=192.168.56.200
ifconfig lo:0 $vip netmask 255.255.255.255 broadcast $vip up #網關要和虛ip一樣,掩碼不能同於eth0的
route add -host $vip dev lo:0 #添加永久路由
#echo "0" >/proc/sys/net/ipv4/ip_forward #關閉real server ip轉發,2.6.*內核默認是關閉的
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
#sysctl -p #查看sysctl的配置變化,可不執行
5.3、測試LVS