主配置log-bin,指定文件的名字
主配置server-id,默认为1
从配置server-id,与主不能重复
MySQL主: 192.168.127.134
MySQL从: 192.168.127.135
从库有数据库user_134 和表user
从库的数据库名和表名与主库保持一致
1、主库 134配置
vi /etc/my.cnf
配置完成后,重启Mysql
service mysqld restart
2、从库 135配置
vi /etc/my.cnf
server-id=2
配置完成后,重启Mysql
service mysqld restart
3、主数据库134 创建备份账号并授权 REPLICATION SLAVE
该账号用于主从的数据同步
登录数据库,并创建用户repl
create user 'repl'@'%' identified by 'Larry@123456';
授权
grant replication slave on *.* to 'repl'@'%';
刷新权限
flush privileges;
4、主数据库进行锁表。
注意:这里的目的是将主库的数据备份到从库中,以使主库和从库的数据保持一致。
登录mysql执行如下命令
FLUSH TABLES WITH READ LOCK;
锁表是为了数据备份。进行主从数据同步时,先对主库锁表(也就是不能进行写操作),在同步数据。
主库锁表后,往主库插入数据。可以发现一直在转圈圈。
5、主数据库找到log-bin的位置 SHOW MASTER STATUS;
6、主数据库备份数据
备份到dbdump.db 这个文件。
复制一个会话,并执行
mysqldump --all-databases --master-data > dbdump.db -uroot -p
可以看到文件已经保存好了
7、将主数据库(134)的数据复制到从数据库(135)
在从数据库中使用scp命令
scp root@192.168.127.134:~/dbdump.db .
8、将文件加载到从数据库中
在从数据库所在的服务器(135)执行如下命令
mysql < dbdump.db -uroot -p
9、查看验证从数据库是否同步了数据
说明已经有数据了。
10、在主库中解除锁表
unlick tables;
然后可以发现前面的插入数据成功了。
此时主库中有两条数据,从库中只有1条数据。
11、在从库上设置主的配置
mysql> change master to
-> master_host='192.168.127.134',
-> master_user='repl',
-> master_password='Larry@123456',
-> master_log_file='larry_mysql.000001',
-> master_log_pos=739;
其中master_log_file 和master_log_pos的值与前面对应
然后执行start slave;
最后,可以发现从库中也有两条数据了。
12、主库中将Larry10改成Larry100
然后进入从库,Larry10也变成了Larry100
然后插入一条数据,11,Larry11。可以发现从库中也多了这条数据。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!