Mysql基本的主从

实现MySQL主从复制需要进行的配置:

-- 主服务器

开启二进制日志
配置唯一的server-id
获得master二进制日志文件名及位置
创建一个用于slave和master通信的用户账号

-- 从服务器

配置唯一的server-id
使用master分配的用户账号读取master二进制日志
启用slave服务

主数据库:182.92.172.80

从数据库:123.57.44.85

主数据库master修改:

  1. 找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:

    [mysqld]
    log-bin=mysql-bin #开启二进制日志
    server-id=1 #设置server-id

  2. 重启mysql,创建用于同步的用户账号
    创建用户并授权:用户:rel1密码:slavepass
mysql> CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';#分配权限
mysql>flush privileges;   #刷新权限
  1. 查看master状态,记录二进制文件名(mysql-bin.000003)和位置(73):

    mysql > SHOW MASTER STATUS;
    FilePositionBinlog_Do_DBBinlog_Ignore_DB
    mysql-bin.00000373testmanual,mysql

从服务器slave修改:

  1. 修改mysql配置,同样找到my.cnf配置文件,添加server-id

    [mysqld]
    server-id=2 #设置server-id,必须唯一

  2. 重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置):

    mysql> CHANGE MASTER TO

       ->     MASTER_HOST='182.92.172.80',
       ->     MASTER_USER='rep1',
       ->     MASTER_PASSWORD='slavepass',
       ->     MASTER_LOG_FILE='mysql-bin.000003',
       ->     MASTER_LOG_POS=73;
    
  3. 启动slave同步进程:

    mysql>start slave;

  4. 查看slave状态:

    mysql> show slave statusG;
    1. row **

                  Slave_IO_State: Waiting for master to send event
                     Master_Host: 182.92.172.80
                     Master_User: rep1
                     Master_Port: 3306
                   Connect_Retry: 60
                 Master_Log_File: mysql-bin.000013
             Read_Master_Log_Pos: 11662
                  Relay_Log_File: mysqld-relay-bin.000022
                   Relay_Log_Pos: 11765
           Relay_Master_Log_File: mysql-bin.000013
                Slave_IO_Running: Yes
               Slave_SQL_Running: Yes
                 Replicate_Do_DB: 
             Replicate_Ignore_DB: 
           ...
    

当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。接下来就可以进行一些验证了,比如在主master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可以完成主从复制功能的验证了。

master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:

# 不同步哪些数据库  
binlog-ignore-db = mysql  
binlog-ignore-db = test  
binlog-ignore-db = information_schema  
  
# 只同步哪些数据库,除此之外,其他不同步  
binlog-do-db = game  
Last modification:May 10th, 2019 at 09:38 am
 Support
If you think my article is useful to you, please feel free to appreciate
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劲爆老爹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值