5.5版本
主库
修改配置文件
sed -i '/[mysqld]/a\server-id=1' /etc/my.cnf
#在mysql的配置文件中的[mysqld]这一行后面追加一行server-id=1
systemctl restart mariadb
#重启服务
给从库授权认证
--授予来自<slavehost>的<username>所有库所有表的REPLICATION slave权限,设置密码为<密码>
grant REPLICATION slave on *.* to <username>@<slavehost> identified by <密码>;
flush privileges;
全备份
mysqldump -uroot -p -A > all1.sql
mysqldump -uroot -p -A --master-data=2 > all2.sql
sed -n '22p' all2.sql
从库
修改配置文件
sed -i '/[mysqld]/a\server-id=2' /etc/my.cnf
#在mysql的配置文件中的[mysqld]这一行后面追加一行server-id=2
systemctl restart mariadb
#重启服务
初始化数据库,还原数据,使数据一致
mv /var/lib/mysql* /tmp
mysql -u -p < all.sql
change master (I/O SQL)
change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_file='',master_log_pos='<>';
启动slave
start slave
查看slave状态
show slave status\G;
5.7版本
主库
sed -i '/[mysqld]/a\server-id=1\nlog-bin=/var/lib/mysql-log/mastera' /etc/my.cnf
#在mysql的配置文件中的[mysqld]这一行后面追加两行server-id=1和log-bin=/var/lib/mysql-log/mastera
从库
配置有误
--停止slave;
stop slave;
--清空change master to的配置
reset slave all;
--重新配置change master to;
--5.6
change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_file='',master_log_pos='';
--5.7
change master to master_host='ip',master_user='用户名',master_passoword='密码',master_log_position=1;
--启动slave
start slave;
注
有错请指出,不喜勿喷,不接受喷我小白,虽然这是事实,如果要喷请预约
网友评论