设置步骤如下:
第一步:设置复制master/slave配置文件
停掉mysql服务 :
shell>mysqladmin shutdown -uroot -p
在master对应的my.cnf文件中添加如下内容:
[mysqld]
log-bin=mysql-bin #启动log-bin,默认是不启动的
server-id=1#设置唯一的ID,不能与slave机器的id相同</span>
启动master里面的mysql服务:
shell>mysql --defaults-file=/path/to/my.cnf &
[mysqld]
log-bin=mysql-bin #启动log-bin,默认是不启动的
server-id=2#设置唯一的ID,不能与master机器的id相同</span>
启动slave里面的mysql服务。
第二步:在master中创建用于主从备份的用户
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO backup@’slave ip’
IDENTIFIED BY ‘1234’;
第三步:准备数据
1.采用mysqldump:
shell> mysqldump --all-databases --master-data > dbdump.db
2.直接copy文件:(以下方式三选一)
shell>tar cf
shell>/tmp/db.tar
./data
zip -r
shell>/tmp/db.zip
./data
rsync --recursive
./data
/tmp/dbdata
3.采用mysqlbackup:
shell>mysqlbackup -uroot -p --backup-dir=/path/to/backups backup
将数据导入到slave中:
1.采用mysqldump:
mysql < dbdump.db
直接将文件解压到slave的data目录
3.采用mysqlbackup:
shell>mysqlbackup --defaults-file=/path/to/backups/backup-my.cnf --backup-dir=/path/to/backups/ --datadir=/path/to/mysql/data/ -uroot -p copy-back-and-apply-log
第四步:创建slave
查看master的bin-log文件以及position:
使用change master命令来初始化从库:
记得要start slave哦!
最后,检验
在slave机器上执行show slave status\G
在master机器上也可以查看到其slave的信息
上图可以看到,master机器上mysql的端口号为13306,slave的mysql端口为12222。
主从复制配置好之后,当master上出现数据更新,slave会根据相应信息自动更新。(这是我得到的结论,如果存在问题欢迎大家指出)
上图显示的是操作master,slave跟着改变。(左边为master,右边为slave)