mysql 数据库主从

   现在数据量越来越大了,数据库主从及读写分离也越来越普及了,我们直接来看吧

1、主从原理

  • 在主库上把数据更改记录到二进制日志中(Binary Log)中,这些记录称为二进制日志事件。
  • 从库通过IO线程将主库上的日志复制到自己的中继日志(Relay Log)中。
  • 从库通过SQL线程读取中继日志中的事件,将其重放到自己数据上。

2、主从配置

 首先准备两台服务器 我们就分别叫master(主 192.168.1.30)  和savel(从 192.168.1.40) 吧

打开master服务器上my.cnf(不知道在哪的 mysql --help|grep my.cnf  用这个命令)

在[mysqld]加入下面的内容:

  # 服务的唯一编号 server-id = 1

  # 开启mysql binlog功能 log-bin = /var/log/mysql/mysql-bin.log

  # binlog记录内容的方式,记录被操作的每一行 binlog_format = ROW

  # 减少记录日志的内容,只记录受影响的列 binlog_row_image = minimal

  # 指定需要复制的数据库名为jgyw binlog-do-db = tf

  # 保存日志天数expire_logs_days   = 10

  # 二进制日志大小max_binlog_size   = 100M

保存后 service mysql restart 重启mysql

然后进入master mysql 创建从库同步数据的账号

 grant replication slave on *.* to 'tf'@'192.168.1.40' identified by 'tf@123';

tf是账号,192.168.1.40是从库ip,tf@123是登录密码

如果原理的数据库有数据,则需要将原数据导出

          1.先FLUSH TABLES WITH READ LOCK; 锁住表

          2.在不退出该终端的情况下(否则锁表会失效),再次开启一个终端直接打包压缩数据文件或    者使用mysqldump工具来导出数据:#mysqldump-uroot -h 127.0.0.1 --opt -R XXXXXX>/data/mysql/backup/XXXXXX.sql

          3.备份数据库到从数据库#tar-czvf XXXXXX.tar.gz XXXXXX.sql  #scp XXXXXX.tar.gz root@10.7.70.42:/data/mysql/backup

          4. UNLOCKTABLES; 解锁

查询mysql执行情况 show master status\G;

File: mysql-bin.000002    // 这两个记一下  等下要用

Position: 2380                // 还有这个

Binlog_Do_DB: jgyw

Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)

接下来配置从服务器

        跟前面一样,先修改my.cnf  不过要改一下 server-id =2 (多少都可以  不能跟主库相同),

service mysql restart 重启mysql

进入mysql

        1.SHOW VARIABLES LIKE 'server_id';  先查看一下server-id 是否和设置的不同,不同的话说明配置没改成功,可以临时SET GLOBAL server_id=2; 设置一下 ,不过mysql重启后会消失,尽快配置写好

        2.建立联系  (都是主表设置的信息)

        CHANGE MASTER TO MASTER_HOST='XX.XX.XX.XX', //主数据库的ip地址

        ->MASTER_USER='repl',

        ->MASTER_PASSWORD='repl',

        ->MASTER_LOG_FILE='mysql-bin.000002', //这里根据主服务器的binlog和id设置

        ->MASTER_LOG_POS=2380; //

        3. start slave; 开启同步  

        4.show slave status\G;  查看同步情况  

         Slave_IO_Running和Slave_SQL_Running的状态都为Yes时,说明从库配置成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值