[root@node01 ~]# yum install -y golang screen git
[root@node01 ~]# which ip
/usr/sbin/ip
[root@node01 ~]# visudo
mysql ALL=(ALL) NOPASSWD:/usr/sbin/ip
[mysql@node01 ~]$ sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192
[mysql@node01 ~]$ arping -c 5 -A 192.168.40.100 -I ens192
[mysql@node01 ~]$ sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192
[mysql@node01 ~]$ ssh-keygen
[mysql@node01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node02
[mysql@node01 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node03
[root@node01 ~]# git clone https://github.com/radondb/xenon.git
Cloning into 'xenon'...
remote: Enumerating objects: 1493, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 1493 (delta 20), reused 16 (delta 16), pack-reused 1428
Receiving objects: 100% (1493/1493), 815.39 KiB | 0 bytes/s, done.
Resolving deltas: 100% (790/790), done.
[root@node01 ~]# cd xenon
[root@node01 xenon]# go env -w GO111MODULE=off
[root@node01 xenon]# make build
[root@node01 ~]# cp -ar xenon /usr/local/
[root@node01 ~]# chown -R mysql:mysql /usr/local/xenon
[mysql@node01 ~]$ cd /usr/local/xenon/conf
[mysql@node01 conf]$ cp xenon-simple.conf.json xenon.json
[mysql@node01 conf]$ vim xenon.json
{
"server":
{
"endpoint":"192.168.40.101:8801"
},
"raft":
{
"meta-datadir":"raft.meta",
"heartbeat-timeout":1000,
"election-timeout":3000,
"leader-start-command":"sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192 && arping -c 5 -A 192.168.40.100 -I ens192",
"leader-stop-command":"sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192"
},
"mysql":
{
"admin":"root",
"passwd":"abcd.1234",
"host":"localhost",
"port":3306,
"basedir":"/usr/local/mysql",
"defaults-file":"/etc/my.cnf",
"ping-timeout":1000,
"master-sysvars":"",
"slave-sysvars": ""
},
"replication":
{
"user":"repl",
"passwd":"repl"
},
"backup":
{
"backupdir":"/home/mysql/backup",
"xtrabackup-bindir":"/usr/bin",
"backup-iops-limits":100000,
"backup-use-memory": "2GB",
"backup-parallel": 2
},
"rpc":
{
"request-timeout":500
},
"log":
{
"level":"INFO"
}
}
[mysql@node01 ~]$ echo "/usr/local/xenon/conf/xenon.json" > /usr/local/xenon/bin/config.path
[root@node01 ~]# yum -y install screen
[mysql@node01 ~]$ screen -S xenon
[mysql@node01 ~]$ /usr/local/xenon/bin/xenon -c /usr/local/xenon/conf/xenon.json > /usr/local/xenon/xenon.log
ctrl+a+d --后台执行
[mysql@node01 ~]$ screen -ls
There is a screen on:
3061.xenon (Detached)
1 Socket in /var/run/screen/S-mysql.
[root@node02 ~]# yum install -y golang screen git
[root@node02 ~]# which ip
/usr/sbin/ip
[root@node02 ~]# visudo
mysql ALL=(ALL) NOPASSWD:/usr/sbin/ip
[mysql@node02 ~]$ sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192
[mysql@node02 ~]$ arping -c 5 -A 192.168.40.100 -I ens192
[mysql@node02 ~]$ sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192
[mysql@node02 ~]$ ssh-keygen
[mysql@node02 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node01
[mysql@node02 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node03
[root@node02 ~]# git clone https://github.com/radondb/xenon.git
Cloning into 'xenon'...
remote: Enumerating objects: 1493, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 1493 (delta 20), reused 16 (delta 16), pack-reused 1428
Receiving objects: 100% (1493/1493), 815.39 KiB | 0 bytes/s, done.
Resolving deltas: 100% (790/790), done.
[root@node02 ~]# cd xenon
[root@node02 xenon]# go env -w GO111MODULE=off
[root@node02 xenon]# make build
[root@node02 ~]# cp -ar xenon /usr/local/
[root@node02 ~]# chown -R mysql:mysql /usr/local/xenon
[mysql@node02 ~]$ cd /usr/local/xenon/conf
[mysql@node02 conf]$ cp xenon-simple.conf.json xenon.json
[mysql@node02 conf]$ vim xenon.json
{
"server":
{
"endpoint":"192.168.40.102:8801"
},
"raft":
{
"meta-datadir":"raft.meta",
"heartbeat-timeout":1000,
"election-timeout":3000,
"leader-start-command":"sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192 && arping -c 5 -A 192.168.40.100 -I ens192",
"leader-stop-command":"sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192"
},
"mysql":
{
"admin":"root",
"passwd":"abcd.1234",
"host":"localhost",
"port":3306,
"basedir":"/usr/local/mysql",
"defaults-file":"/etc/my.cnf",
"ping-timeout":1000,
"master-sysvars":"",
"slave-sysvars": ""
},
"replication":
{
"user":"repl",
"passwd":"repl"
},
"backup":
{
"backupdir":"/home/mysql/backup",
"xtrabackup-bindir":"/usr/bin",
"backup-iops-limits":100000,
"backup-use-memory": "2GB",
"backup-parallel": 2
},
"rpc":
{
"request-timeout":500
},
"log":
{
"level":"INFO"
}
}
[mysql@node02 ~]$ echo "/usr/local/xenon/conf/xenon.json" > /usr/local/xenon/bin/config.path
[mysql@node02 ~]$ screen -S xenon
[mysql@node02 ~]$ /usr/local/xenon/bin/xenon -c /usr/local/xenon/conf/xenon.json > /usr/local/xenon/xenon.log
ctrl+a+d --后台执行
[mysql@node02 ~]$ screen -ls
There is a screen on:
1396.xenon (Detached)
1 Socket in /var/run/screen/S-mysql.
[root@node03 ~]# yum install -y golang screen git
[root@node03 ~]# which ip
/usr/sbin/ip
[root@node03 ~]# visudo
mysql ALL=(ALL) NOPASSWD:/usr/sbin/ip
[mysql@node03 ~]$ sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192
[mysql@node03 ~]$ arping -c 5 -A 192.168.40.100 -I ens192
[mysql@node03 ~]$ sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192
[mysql@node03 ~]$ ssh-keygen
[mysql@node03 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node01
[mysql@node03 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub mysql@node02
[root@node03 ~]# git clone https://github.com/radondb/xenon.git
Cloning into 'xenon'...
remote: Enumerating objects: 1493, done.
remote: Counting objects: 100% (65/65), done.
remote: Compressing objects: 100% (49/49), done.
remote: Total 1493 (delta 20), reused 16 (delta 16), pack-reused 1428
Receiving objects: 100% (1493/1493), 815.39 KiB | 0 bytes/s, done.
Resolving deltas: 100% (790/790), done.
[root@node03 ~]# cd xenon
[root@node03 xenon]# go env -w GO111MODULE=off
[root@node03 xenon]# make build
[root@node03 ~]# cp -ar xenon /usr/local/
[root@node03 ~]# chown -R mysql:mysql /usr/local/xenon
[mysql@node03 ~]$ cd /usr/local/xenon/conf
[mysql@node03 conf]$ cp xenon-simple.conf.json xenon.json
[mysql@node03 conf]$ vim xenon.json
{
"server":
{
"endpoint":"192.168.40.103:8801"
},
"raft":
{
"meta-datadir":"raft.meta",
"heartbeat-timeout":1000,
"election-timeout":3000,
"leader-start-command":"sudo /usr/sbin/ip address add 192.168.40.100/32 dev ens192 && arping -c 5 -A 192.168.40.100 -I ens192",
"leader-stop-command":"sudo /usr/sbin/ip address del 192.168.40.100/32 dev ens192"
},
"mysql":
{
"admin":"root",
"passwd":"abcd.1234",
"host":"localhost",
"port":3306,
"basedir":"/usr/local/mysql",
"defaults-file":"/etc/my.cnf",
"ping-timeout":1000,
"master-sysvars":"",
"slave-sysvars": ""
},
"replication":
{
"user":"repl",
"passwd":"repl"
},
"backup":
{
"backupdir":"/home/mysql/backup",
"xtrabackup-bindir":"/usr/bin",
"backup-iops-limits":100000,
"backup-use-memory": "2GB",
"backup-parallel": 2
},
"rpc":
{
"request-timeout":500
},
"log":
{
"level":"INFO"
}
}
[mysql@node03 ~]$ echo "/usr/local/xenon/conf/xenon.json" > /usr/local/xenon/bin/config.path
[mysql@node03 ~]$ screen -S xenon
[mysql@node03 ~]$ /usr/local/xenon/bin/xenon -c /usr/local/xenon/conf/xenon.json > /usr/local/xenon/xenon.log
ctrl+a+d --后台执行
[mysql@node02 ~]$ screen -ls
There is a screen on:
19761.xenon (Detached)
1 Socket in /var/run/screen/S-mysql.
[mysql@node01 ~]$ /usr/local/xenon/bin/xenoncli cluster add 192.168.40.101:8801,192.168.40.102:8801,192.168.40.103:8801
[mysql@node02 ~]$ /usr/local/xenon/bin/xenoncli cluster add 192.168.40.101:8801,192.168.40.102:8801,192.168.40.103:8801
[mysql@node03 ~]$ /usr/local/xenon/bin/xenoncli cluster add 192.168.40.101:8801,192.168.40.102:8801,192.168.40.103:8801
[mysql@node01 ~]$ /usr/local/xenon/bin/xenoncli cluster mysql
+---------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+
| ID | Raft | Mysql | Option | Master_Log_File/Pos | IO/SQL_Running | Seconds_Behind | Last_Error |
+---------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+
| 192.168.40.101:8801 | LEADER | ALIVE | READWRITE | [mysql-bin.000002/654] | [true/true] | 0 | |
+---------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+
| 192.168.40.102:8801 | FOLLOWER | ALIVE | READONLY | [mysql-bin.000002/654] | [true/true] | 0 | |
+---------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+
| 192.168.40.103:8801 | FOLLOWER | ALIVE | READONLY | [mysql-bin.000002/654] | [true/true] | 0 | |
+---------------------+----------+-------+-----------+------------------------+----------------+----------------+------------+