mysql主从复制新手入门

发布时间:2020-07-21编辑:脚本学堂
本文介绍下,在mysql数据库中配置主从复制的方法,一步一步地来实现mysql主从复制,感兴趣的朋友可以参考下。

本节内容:
配置 mysql主从复制

相比其它的数据库产品,在mysql数据库中配置主从复制,相当简单。

环境:
 

MASTER=192.168.233.110
SLAVE=192.168.233.61
MySQL Version=5.6.14
OS=redhat 5.8 64bit

a在master上增加server-id和log-bin参数.
 

[mysqld]
server-id=110    --以IP最后一部分作为server id是一个很好的实践
log-bin=myfirst  --定义binlog的开头名称

 

复制代码 代码示例:
mysql> create user 'slave'@'192.168.233.61' identified by 'slave';  --创建用户,该用户在slave机器上连接过来
Query OK, 0 rows affected (0.01 sec)
sql> grant replication slave on *.* to 'slave'@'192.168.233.61';    --grant replication slave on *.* 的权限给用户slave
Query OK, 0 rows affected (0.00 sec)

重启mysql daemon生效

在slave上增加server-id
 

复制代码 代码示例:
[mysqld]  
server-id=61

重启mysql daemon生效
 
在master上导出库,--master-data 这条语句会在out文件中增加master_log_file和master_log_pos文件的位置.还有一些其他的方法也可以,
这种方法的好处在于不要在主库上加锁
 

复制代码 代码示例:
[root@jbxue backup]#mysqldump --user root -p --all-databases --master-data >backup.out
[root@jbxue backup]# scp backup.out 192.168.233.61:/root   --scp 到slave库
[root@d2 ~]# mysql -u root -p <backup.out    --导入
 

在slave上,以root用户改master
 

复制代码 代码示例:

mysql> change master to
    -> master_host='192.168.233.110',
    -> master_user='slave',
    -> master_password='slave',
    -> master_log_file='myfirst.000002',   --来源于backup.out
    -> master_log_pos=120;                 --来源于backup.out
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> start slave;   --启动slave
Query OK, 0 rows affected (0.04 sec)

mysql> show slave status G;  --查看slave状态,可以看到slave_io_running和slave_sql_running都是处于yes状态
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.233.110
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: myfirst.000002
          Read_Master_Log_Pos: 120
               Relay_Log_File: d2-relay-bin.000002
                Relay_Log_Pos: 281
        Relay_Master_Log_File: myfirst.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

mysql> insert into frank.t1 values(5);  --主库上insert一条记录到frank.t1表中
Query OK, 1 row affected (0.01 sec)
mysql>  select * from frank.t1;     --备库中立即就可以查询到这条insert记录
+------+
| a    |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
|    5 |
+------+
 

验证MySQL replaction配置成功。

如此,就完成了mysql主从复制的配置,是不是很简单呢。

更多内容,请参考:
mysql主从数据库配置(单向备份、双向备份)的方法详解
Mysql 主从复制(Replication)的实例分享
mysql主从同步设置的实例参考
mysql5.5主从复制(Replication)的简单配置示例
mysql主从复制安装与配置一例
mysql 主从同步一例
mysql主从简明配置一例
mysql主从复制的配置实例
mysql主从同步的精确计算方法
mysql主从复制读写分离的实现方法
MySQL主从服务器配置的一些总结
mysql主从复制配置与原理分析
简单配置mysql的主从复制
配置mysql主从复制的一点心得体会
linux下mysql主从同步复制配置