MySQL的主从复制

2018-07-13  本文已影响0人  辛晓坤Vincent

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;

有错请指出,不喜勿喷,不接受喷我小白,虽然这是事实,如果要喷请预约

上一篇下一篇

猜你喜欢

热点阅读