假设:服务器A为主mysql,服务器B为从mysql.
1.在服务器A,B上安装mysql.
2.修改/usr/my.cnf 参数文件
服务器A:
修改后的参数文件内容(红色字体为新加入内容):
[mysqld]
datadir =/u02/mysqldata
log_bin=/u03/mysqldata/mysql01.log
log_error=/u03/mysqldata/mysql01.err
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
binlog_format=row
innodb_support_xa=1
innodb_buffer_pool_size=16G
innodb_additional_mem_pool_size=20M
innodb_log_file_size=256M
innodb_log_files_in_group=3
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
服务器B:
修改后的参数文件内容(红色字体为新加入内容):
[mysqld]
datadir =/u02/mysqldata
log_bin=/u03/mysqldata/mysql02.log
log_error=/u03/mysqldata/mysql02.err
binlog_format=row
server-id=2
read_only=on
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
innodb_buffer_pool_size=8G
innodb_additional_mem_pool_size=20M
innodb_log_file_size=256M
innodb_log_files_in_group=3
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
3.在服务器A新建用户,用于服务器B通过此帐号拉取日志.
GRANT REPLICATION SLAVE ON *.* TO repl_user@'服务器B IP' IDENTIFIED BY 'repl';
4.在服务器A做一次全备,用于还原到服务器B做为複製的开始.
innobackupex --defaults-file=/usr/my.cnf --user=root --password=system /u03/mysqlbackup/full/
5.複製服务器A中的全备到服务器B,并还原.
Scp -r /u03/mysqlbackup/full/备份文件目录名 服务器B IP:/u03/mysqlbackup/full/
删除服务器B上原有的数据文件:
rm -rf /u02/mysqldata/*
还原数据库:
innobackupex --defaults-file=/usr/my.cnf --user=root --password=system --copy-back /u03/mysqlbackup/full/备份文件目录名
更改还原文件的权限:
chown -R mysql.mysql /u02/mysqldata
6.在服务器B配置主从关系
mysql -uroot -p
stop slave;
change master to master_host='服务器A IP',
master_user='repl_user',
master_password='repl',
master_log_file='zdtdb33.000002',--通过备份中的xtrabackup_binlog_info查看
master_log_pos=431; --通过备份中的xtrabackup_binlog_info查看
start slave;
7.配置完成.
在服务器A中登陆mysql,输入SHOW master STATUS;
在服务器B中登陆mysql,输入SHOW slave STATUS;
对比log_pos值是否有在增加,并一致.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28539951/viewspace-1309653/
,如需转载,请注明出处,否则将追究法律责任。