主从搭建
1、在主库建立一个账号,使得从库可以连接[123.50 是从库地址]
mysql> grant replication slave on *.* to 'backup'@'172.16.123.50' identified by '123123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
判断标准:
从库测试连接
[root@R65slave ~]# mysql -ubackup -p123123 -h172.16.123.40
mysql: [Warning] Using a password on the command line interface can be insecure.
2、 对于主库最基本要求:
[mysqld]
log_bin=mysqllogbin
server-id=1
重启数据库,show variables like '%%' 查看修改生效
3、 在主库做一个全备,最好使用xtrabackup,因为我们需要知道binlog 恢复的起点
innobackupex --user=root --password=123123 --no-timestamp /backup
4、 在从库安装一个和主库完全一致的mysql 软件,不需要初始化数据库,如果已经初始化,手工删除
5、修改从库的配置文件
server_id=2
6、使用scp -r 将主库的备份传递给从库
scp -r /backup/ root@172.16.123.50:/
chown -R mysql: /backup
7、在从库上执行xbackup 进行恢复,恢复完成以后,chown 修改数据目录权限。(恢复完成确定binlog 日志到哪个位置)
innobackupex --defaults-file=/etc/my.cnf --move-back /backup/
8、chown修改datadir权限,启动从库
chown -R mysql: /data/
mysqld_safe --defaults-file=/etc/my.cnf &
9、 搭建主从关系【确定binlog 位置,主库的位置】
查看主全备信息
[root@R65Master backup]# cat /backup/xtrabackup_info
binlog_pos = filename 'mysqllogbin.000009', position '451'
查看恢复备份的从库日志信息,发现是一致的
[root@R65slave data]# cat /data/xtrabackup_info
binlog_pos = filename 'mysqllogbin.000009', position '451'
建立主从关系
mysql> change master to master_host='172.16.123.40',master_port=3306,master_user='backup',master_password='123123',master_log_file='mysqllogbin.000009',master_log_pos=451,master_connect_retry=10;
10、start slave 启动备库
11、 从库 show slave status \G 查看io 和sql 有无错误
12、 主库上执行dml 和ddl ,确定从库是否能有数据同步过来
容易出现问题的地方:
1、主从3306端口的防火墙
2、从库可以连接主库
3、 建立主从关系的时候,需要正确指定连接主库的ip 端口 用户名 密码 binlog 起点
4、从库恢复完成,chown, 可以正常启动
5、server-id修改