配置主:• 安装mysql• 修改my.cnf,增加server-id=130和log_bin=xiaobo1• 添加环境变量Vim /root/.bash_profilePATH=$PATH:/usr/local/mysql/bin/生效source !$• 修改完配置文件后,启动或者重启mysqld服务• /etc/init.d/mysqld restart• 把mysql库备份并恢复成xiaobo库,作为测试数据• mysqldump -uroot -pxiaobo mysql > /tmp/mysql.sql• mysql -uroot -pxiaobo -e “create database xiaobo”• mysql -uroot -pxiaobo xiaobo < /tmp/mysql.sql• 创建用作同步数据的用户《参考修改mysql密码mysqladmin -uroot password 'xiaobo'进入mysql mysql -uroot -pxiaobo• grant replication slave on *.* to 'repl'@10.211.55.52 identified by 'xiaobo';• flush tables with read lock; (暂时锁住表)• show master status;• 退出 quit
配置从• 安装mysql• 查看my.cnf,配置server-id=132,要求和主不一样• 修改完配置文件后,启动或者重启mysqld服务/etc/init.d/mysqld restart• 把主上xiaobo库同步到从上[root@CentOS7_two mysql]# scp 10.211.55.51:/tmp/*sql /tmp/• 可以先创建xiaobo库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入xiaobo库• scp 10.211.55.51:/tmp/*sql /tmp/• mysql -uroot -pxiaobo• create database xiaobo;• 恢复数据:将mysql.sql数据导入xiaobo数据库 • [root@CentOS7_two mysql]# mysql -uroot -pxiaobo xiaobo < /tmp/mysql.sql• mysql -uroot -pxiaobo 执行stop slave;• 主数据服务器 记住master_log_file='xiaobo1.000001',master_log_pos=653311
mysql> change master to master_host='10.211.55.51', master_user='repl', master_password='xiaobo', master_log_file='xiaobo1.000001', master_log_pos=653311;
• 注意:关闭selinux :setenfource 0关闭firewalldsystemctl stop firewalld• 开启从机:start slave;• 查看当前的状态 show slave status,有俩个yes就对!mysql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.211.55.51 Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: xiaobo1.000002 Read_Master_Log_Pos: 653371 Relay_Log_File: CentOS7_two-relay-bin.000002 Relay_Log_Pos: 281 Relay_Master_Log_File: xiaobo1.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes• 还要到主上执行 unlock tables
回顾从上执行mysql -urootshow slave stauts\G看是否有Slave_IO_Running: YesSlave_SQL_Running: Yes还需关注Seconds_Behind_Master: 0 //为主从延迟的时间Last_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:主服务器上binlog-do-db= //仅同步指定的库binlog-ignore-db= //忽略指定库从服务器上replicate_do_db=replicate_ignore_db=replicate_do_table=replicate_ignore_table=replicate_wild_do_table= //如aming.%, 支持通配符% replicate_wild_ignore_table=
测试主从主上 mysql -uroot -pxiaobo使用xiaobo数据库:use xiaobo;select count(*) from user;truncate table user;到从上 mysql -uroot -pxiaoboselect count(*) from user;主上继续drop table user;从上查看user表