mysql主从复制

mysql数据库的主从复制是通过bin日记来实现的。以下是我在linux上的实现。

 

主机:192.168.1.2

从机:192.168.1.4

 

先分别在主机,从机创建一个数据库moviecreate database movie;

 

在主机上执行语句:GRANT all ON *.* TO slave@192.168.1.4 IDENTIFIED BY 'password';

创建一个mysql用户,让从机可以访问该主机。

 

修改主机的my.cnf配置文件:

log-bin = /db/mysql/binlog/binlog         //指定bin日记的存放位置为/db/mysql/binlog

binlog-do-db=movie                    //指定需要在bin日记里记录的数据库是movie

server-id = 1                          //server-id应该与从机不一样

修改配置文件后记得重新启动数据库。

 

修改从机的my.cnf配置文件:

#log-bin = /db/mysql/binlog/binlog        //这句应该注释掉,因为从机不用写bin日记

replicate-do-db=movie                  //只对movie数据库进行复制

server-id = 2                          //server-id应该与主机不一样

修改配置文件后记得重新启动数据库。

 

通过mysql客户端登录从机数据库,执行如下语句:

CHANGE MASTER TO

MASTER_HOST = '192.168.1.2',

MASTER_PORT = 3306,

MSTER_USER = 'slave',-----------此帐号和密码就是在主机上建立的账号和密码

MASTER_PASSWORD = 'password',

MASTER_LOG_FILE = 'mysql-bin.000009',

MASTER_LOG_POS = 126;

Master_log_filemaster_log_pos是在主机上执行如下语句获得:

show master status;

 

从机上执行语句:slave start;然后可以通过语句查看从机的状态:show slave status

应该看到这2个变量的状态:Slave_IO_Running: YesSlave_SQL_Running: Yes,出现error,则说明配置有错误。

 

以上就实现了mysql的主从复制,可以测试一下看看:在主机上建立一个表,然后插入几条记录,如果配置成功,那么在从机上就会出现相同的表和记录。

 

文章最开始的时候提到这个:

先分别在主机,从机创建一个数据库moviecreate database movie;

 

这是针对需要新建一个数据库的情况,其实很多时候,主机可能已经运行一段时间了,这时主机已经有了一定的数据,我们可以把里面的数据通过mysqldump工具把里面的数据备份一下:mysqldump -uroot –p –S /tmp/mysql.sock movie > movie.sql;

然后再通过mysql工具将数据导入到从机:mysql –uroot –p –S /tmp/mysql.sock movie < movie.sql,当然在这之前,先要在从机中建立数据库movie.

这样,主机,从机都有了相同的数据,之后就可以通过bin日记来同步数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值