现在测试的是两个mysql都是新的,没数据的。如果master有数据的,将数据库导出,并导入slave数据库中,在启动同步之前,两边的数据要一致。
PS: 主从服务器的版本可以不一样,但是从服务器的版本必须高于主服务器的版本。
master:192.168.80.24
slave :192.168.80.45
1、主服务器上进行操作
(1)创建同步用户并授权
mysql>insert into mysql.user(host,user,password) values("localhost","repl",password("repl"));
mysql>flush privileges;
mysql>grant replication slave on *.* to ‘repl’@‘192.168.80.45‘ identified by ‘repl‘;
PS:创建用户还可以:CREATE USER ‘user‘@ ‘X.X.X.X‘ IDENTIFIED BY ‘password‘;
(2)修改my.cnf文件,在[mysqld]下添加下面两行:
log-bin=mysql-bin
server-id=24
server-id #服务器id,一般取ip地址末段
log-bin=mysql-bin #启动二进制日志
然后重启mysql服务
(3)登陆mysql查询主数据库的状态
mysql> show master status;
记下File以及Position的值,在后面进行从服务器操作的时候需要使用。
2、配置从服务器
(1)修改从服务器的配置文件/etc/my.cnf,在[mysqld]下面添加:
server-id=45 确定这个id没有被别的mysql服务所使用。
log-bin=mysql-bin
然后启动或者重启从数据库
(2)登录mysql
mysql -uroot -p
(3)执行同步的sql语句
mysql>change master to master_host=‘192.168.80.24‘,master_user=‘repl‘,master_password=‘repl‘,
master_log_file=‘mysql-bin.000001‘,master_log_pos=107;
(4)执行正确后再执行
mysql> start slave;
这样就启动了slave同步功能。
(5)主从同步检查
执行如下语句
mysql>show slave status\G
Slave_IO进程以及slave_SQL进程都必须正常运行,在状态输出中表现为:“slave”;否则都是不正确,两个进程的状态(如一个值是Yes,另一个是No则不行)。
本文出自 “寒江独钓” 博客,请务必保留此出处http://iter2012.blog.51cto.com/6873825/1613756
原文地址:http://iter2012.blog.51cto.com/6873825/1613756