mysql主从配置

1.  主从同步环境介绍

操作系统环境:Centos 6 bit

MYSQL版本:MYSQL mysql-5.5.28

主服务器的IP:192.168.1.102

从服务器的IP:192.168.1.133

 2.   在主服务器(102)上建立同步帐号

 

 

GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'192.168.1.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

 3.从服务器(133)配置文件的更改

 

server-id = 2
replicate-wild-ignore-table=mysql.%
log-slave-updates #这个有需要可以开启

 4.  从主服务器得到一个快照版本

 

如果你的是MYISAM或者既有MYISAM又有INNODB的话就在主服务器上使用如下命令导出服务器的一个快照:

mysqldump -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql

试过只有INNODB的话就是用如下命令:

mysqldump -uroot -p --single-transaction --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql

这里需要注意几个参数的使用:

--single-transaction 这个参数只对innodb适用。

--databases 后面跟除mysql以后的其他所有数据库的库名,我这里只有一个test库。

--master-data 参数会记录导出快照时候的mysql二进制日志位置,一会会用到。

 5.  将快照版本还原到从服务器上

 

mysqldump -uroot -p -h 192.168.1.133 -P 3303 test < db.sql

mysqldump: Got error: 2003: Can't connect to MySQL server on '' (111) when trying to connect 缺少端口设置!!! 添加 -P 3303


将快照版本还原到从服务器上以后,此时从服务器上的数据和主服务器的数据是一致的。

 6.  在从服务器上使用change master从主服务器上同步

 

使用grep命令查找到二进制日志的名称以及位置

[root@ns1 ~]# grep -i "change master" db.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=106;

生成CHANGE MASTER语句,然后在从上执行

STOP SLAVE; 

CHANGE MASTER TO MASTER_HOST='192.168.1.102',MASTER_PORT=3303,MASTER_USER='replication',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=107;

START SLAVE;

这样就完成了主从同步的搭建,最后使用SHOW SLAVE STATUS\G;查看Slave_IO_Running和Slave_SQL_Running的状态,如果都为Yes,就大功告成了。

注意:不要将同步的信息写入配置文件中,不方便管理,尤其是有变动需要重启。

 

 

 

你可能感兴趣的:(Mysql主从)