机器:2台
操作系统:Ubuntu 14.04 server
节点IP:
节点1: 172.16.53.136
节点2: 172.16.53.137
两台机器最好是干净的之前不要安装mysql,就是安装过最后也要删除干净。
安装用官网给的方法就行,我的操作系统是ubuntu所以用的apt安装,具体方法见下面的链接:
http://www.percona.com/doc/percona-xtradb-cluster/5.6/installation.html#installation
安装完后配置:
[节点1]
写在[mysqld]下:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_address=gcomm:// 172.16.53.136 , 172.16.53.137
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_name=db01.com
wsrep_node_address=172.16.53.136
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=my_ubuntu_cluster
wsrep_sst_auth="test:123456"
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
server-id = 1 数据库的ID 下一台就不能为1了
expire_logs_days = 10
max_binlog_size = 100M
(注):
wsrep_node_name=db01.com 数据库的主机名
wsrep_node_address=172.16.53.136 数据库的IP
wsrep_cluster_name=my_ubuntu_cluster 所有数据库上都要统一
server-id = 1 数据库的ID 下一台就不能为1了
启动 :
/etc/init.d/mysql bootstrap-pxc
或:
mysqld_safe --wsrep-cluster-address="gcomm://" &
查询状态:
这几个参数正确为启动成功
mysql> show status like 'wsrep%';
+----------------------------+--------------------------------------+
| Variable_name | Value |
+----------------------------+--------------------------------------+
| wsrep_local_state_uuid | b598af3e-ace3-11e2-0800-3e90eb9cd5d3 |
...
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
...
| wsrep_cluster_size | 1 |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
...
| wsrep_ready | ON |
+----------------------------+--------------------------------------+
mysql>CREATE USER 'test'@'%' IDENTIFIED BY '123456';
mysql>GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'test''@'%';
mysql>FLUSH PRIVILEGES;
(test用户要在第二台数据库上能登录,为了方便我个人直接就用%了)
[节点2]
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
wsrep_provider=/usr/lib/libgalera_smm.so
wsrep_cluster_address=gcomm://172.16.53.136,172.16.53.137
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_node_name=db02.com 节点2的主机名
wsrep_node_address=172.16.53.137 节点2的IP
wsrep_sst_method=xtrabackup-v2
wsrep_cluster_name=my_ubuntu_cluster 所有数据库上都要 统一
wsrep_sst_auth="test:123456"
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
server-id = 2 这个不能和别的重复
expire_logs_days = 10
max_binlog_size = 100M
节点2启动
/etc/init.d/mysql start
或
nohup mysqld_safe --wsrep-cluster-address=gcomm://主IP:4567 &
查询状态:
mysql> show status like 'wsrep%';
+----------------------------+--------------------------------------+
| Variable_name | Value |
+----------------------------+--------------------------------------+
| wsrep_local_state_uuid | b598af3e-ace3-11e2-0800-3e90eb9cd5d3 |
...
| wsrep_local_state | 4 |
| wsrep_local_state_comment | Synced |
...
| wsrep_cluster_size | 2 |
| wsrep_cluster_status | Primary |
| wsrep_connected | ON |
...
| wsrep_ready | ON |
+----------------------------+--------------------------------------+
40 rows in set (0.01 sec)
第一个库启动正常,
第二个报错
报的错误:
WSREP_SST: [ERROR] Cleanup after exit with status:1 (20150121 09:31:50.227)
2015-01-21 09:31:50 3776 [ERROR] WSREP: Process completed with error: wsrep_sst_xtrabackup-v2 --role 'joiner' --address '172.16.53.137' --auth 'hans:123456' --datadir '/var/lib/mysql/' --defaults-file '/etc/mysql/my.cnf' --parent '3776' '' : 1 (Operation not permitted)
150121 09:31:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
一直提示:xtrabackup-v2 相关错误在网上找了一些方法没有解决,
最后我把wsrep_sst_method改成
wsrep_sst_method = rsync
启动成功.
随后又 rsync在改成 xtrabackup-v2 居然也启动成功了,不知道为什么这样,问同事他们也遇到过,他们是把机器重启后就好了。