mysql主从复制

目录

mysql常用命令

主服务器配置

master  my.ini配置

创建用于主从同步的账号,并授权

查看master状态,记下当前file position 

从服务器配置slave my.ini配置

启动slave 


mysql常用命令

1. select version(); 查看版本号
2. show global variables like 'port';  查看端口号
3. show variables like 'server_id';  查看server-id
4. show grants for root@'localhost'; 查看账户权限
5. show master status\G;  show slave status\G; 查看主从数据库状态

主服务器配置

master  my.ini配置

server-id = 118 #数据库id,不能重复,我这里的118为当前ip的最后三位
log-bin = mysql-bin #二进制日志文件,必填项,否则不能同步数据;如果不取名字的话,那么就会以计算机的名字加编号来命名二进制文件; 
binlog-do-db = testcreate  #需要同步的数据库,如果还需要同步另外的数据库,那么继续逐条添加,如果不写,那么默认同步所有的数据库;
binlog-ignore-db = mysql #不需要同步的数据库;


创建用于主从同步的账号,并授权

CREATE USER 'slave'@'localhost' IDENTIFIED BY '123456';#创建用户,我的主从服务器都是在本地电脑上只是端口号不同,所以这里为localhost  
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost';#授权  
flush privileges;  #刷新权限


查看master状态,记下当前file position 

mysql> show master status;
+------------------+----------+--------------+------------------+---------------
----+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_
Set |
+------------------+----------+--------------+------------------+---------------
----+
| mysql-bin.000002 |     1145 |              |                  |
    |
+------------------+----------+--------------+------------------+---------------

从服务器配置
slave my.ini配置

server-id = 3 #只需要添加一个server-id就可以了。不能跟主服务器相同
#然后执行下面的sql语句
mysql> CHANGE MASTER TO
    ->     MASTER_HOST='localhost', #master IP
    ->     MASTER_USER='slave', #上面分配的主从复制的账户名
    ->     MASTER_PASSWORD='123456', #密码
    ->     MASTER_LOG_FILE='mysql-bin.000002',  #上面master status 中的file 二进制文件名称
    ->     MASTER_LOG_POS=1145;  # position值  它的位置


启动slave 

start slave;
#查看slave状态
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: localhost
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 1145
               Relay_Log_File: lg-PC-relay-bin.000004
                Relay_Log_Pos: 1312
        Relay_Master_Log_File: mysql-bin.000002
            Slave_IO_Running: Yes    
            Slave_SQL_Running: Yes     
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:

#当 Slave_IO_Running: Yes    Slave_SQL_Running: Yes 这两项都为yes时表示主从同步设置成功了。


如果主从数据库都在同一个电脑上,要注意server-uuid,在data目录下的auto.cnf文件中更改下就可以了,随便改,只要不一样就可以。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值