mysql的master和slave主从同步

配置:

10.10.10.1master/10.10.10.2slave

说明:

关键是开启log-bin=mysql-bin 启动二进制文件

mysql中的log-bin是存储的mysqldml语句(事务相关的),根据这个mysql可以进行redoundo----同时同步的时候,实际上是吧master中的log-bin传给slave,然后由slave服务器根据log-bin进行redo!!!所以开启log-bin是核心


A,master配置:


mysqld

log-bin=mysql-bin 启动二进制文件

server-id=1 服务器ID

binlog-do-db= test        #设置同步数据库,如果有多个数据库,每个数据库一行

binlog-ignore-db = mysql  #设置不要同步的数据库,如有多个数据库,每个数据库一行

#sql-bin-update-same      #同步模式 ,在mysql5以上的版本都不需要这句,否则会启动不了mysql服务


master上创建认证用户(只要有replication slave权限就可以)以及dump数据库,并传给slave

1,grant replication slave on *.* to 'rsync'@'218.28.198.176'identified by

'yexu888';

                     #创建rsync用户,并授权给10.10.10.2使用

2,flush privileges;

3,flush tables with read lock;

                    #进行锁表操作,不让数据进行写入动作(需要做dump)

4show masterstatus;

                     #询主数据库状态,并记下FILEPosition的值

5mysql> mysqldump �Curoot �Cp123456 --default-character-set=gbk --single-transaction--opt --extended-insert=false --triggers -R --hex-blobmysqltest > mysqltest.sql          

                        #--all-databases代表导出所有库

6mysql>mysqldump �Curoot �Cp123456 --default-character-set= gbk --single-transaction--opt --extended-insert=false --triggers -R --hex-blob  test1234 > test1234.sql

                        #mysqldump命令将刚才查询到的两个库导出来

7,用scp传到slave服务器上,并source回去!

8mysql> unlock tables;

                     #切换回之前的主库终端,进行表解锁操作

ps:如果是原来服务器中的数据库已经有数据,那需要将这些数据导入到slave数据库中,因为,slave无法更具masterlog-bin日志进行redo!!!


B,slave配置


【mysqld】


server-id   = 2

log-bin=mysql-bin                #本MySQL是slave服务器

master-host = 10.10.10.1         #Master服务器的IP

master-user = rsync              #连接Master服务器的用户

master-password  = 'yexu888'      #连接Master服务器的密码
master-port =3306                 #连接端口
master-connect-retry = 10         #重试次数
replicate-do-db=test              #设置要接收的数据库,如有多个数据库,每个数据库一行

replicate-ignore-db= mysql        #设置不要接收的数据库,每个数据库一行(一般这条可不写

#log-slave-updates                #在mysql5以上的版本都不需要这句


1, [root@localhost~]# mysqladmin -p123456 shutdown

[root@localhost ~]# mysqld_safe--user=mysql &

                              ---------------重启mysql服务器


你可能感兴趣的:(mysql,主从同步,主从复制)