1.主从复制条件:
#3306为主库,3307为从库
主库要开启log-bin,主库和从库的server-id要不一样。
2.在主库上面创建同步用户:
mysql> grant replication slave on *.* to 'rep'@'192.100.36.%' identified by '123456';
mysql> flush privileges;
3.导出主库数据文件:
一。常规方法:
mysql> flush table with read lock; #先锁表,锁表后不能退出mysql窗口,否则失效
mysql> show master status; #记录bin-log的位置信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 560 | | |
+------------------+----------+--------------+------------------+
mysqldump -uroot -p123456 -S /data/mysql3306/mysql.sock --events -A -B|gzip >/tmp/bak_$(date +%F).sql.gz
mysql> unlock tables; #解锁数据库
二。快捷方法:
mysqldump -uroot -p123456 --events -A -B -F --master-data=2 -x|gzip >/tmp/bak_f_$(date +%F).sql.gz
-x 自动锁表
-F --master-data=2 以备注形式记录bin-log的位置。(可以打开文件看头部备注信息)
4.还原备份内容到从库:
gzip -d bak_f_2017-12-06.sql.gz
mysqlmysql -uroot -p123456 < bak_f_2017-12-06.sql
5.在从库创建master_info文件,并启动同步:
mysql -uroot -pchanhu1234 <<EOF
CHANGE MASTER TO
MASTER_HOST='192.168.36.208',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=599;
EOF
mysql> start slave; #开启同步
mysql> show slave status \G ; #查看同步状态信息
6.监控mysql主从复制的状态指标:
mysql -uroot -p123456 -S /opt/data/mysql3307/mysql.sock -e "show slave status \G ;" | egrep -i "Running|Behind"
Slave_IO_Running: Yes #同步进程是否启动
Slave_SQL_Running: Yes #sql进程是否启动
Seconds_Behind_Master: 0 #从库同步完成需要的时间
本文详细介绍了MySQL主从复制的配置步骤,包括开启主库log-bin、创建同步用户、导出主库数据文件、还原备份到从库、创建master_info文件及启动同步等关键操作。同时提供了监控主从复制状态的方法。
2976

被折叠的 条评论
为什么被折叠?



