Mysql实现主从复制

Mysql实现主从复制

首先编辑主节点mysql配置文件:

[root@localhost ~]# vim /etc/my.cnf

在[mysqld]下添加以下配置(可以只添加server-id配置)

[mysqld]
# 开启binlog二进制日志功能,可以随便取
log-bin=mysql-bin
# 同一局域网内唯一
server-id=100
#复制过滤:不需要备份的数据库
binlog-ignore-db=mysql
#为每个session分配内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
#主从复制格式(mixed,statement,row,默认是statement)
binlog_format=mixed
# 需要同步的数据库,如果不配置则同步全部数据库
# binlog-do-db=test_db
# binlog日志保留的天数,清除超过10天的日志
# 防止日志文件过大,导致磁盘空间不足
expire-logs-days=10

修改完配置文件后注意重启mysql服务

接下来将从节点也配置上,需要注意server-id同一局域网内唯一,从机配置可以另外加上两条:

#如果需要同步函数或者存储过程
log_bin_trust_function_creators=true
#跳过主从复制过程中遇到的所有错误或者指定类型错误,避免slave端复制中断
#如1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062

接下来需要登录主节点mysql,授权slave服务可以同步master服务

[root@localhost ~]# mysql -uroot -p
Enter password:
mysql> GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.0.106' identified by 'yourpassword';             //这边192.168.0.106为从节点主机,yourpassword为从节点mysql密码
mysql> FLUSH PRIVILEGES;    //刷新系统权限表

查看是否授权上:

mysql> select user,host from mysql.user;
+---------------+---------------+
| user          | host          |
+---------------+---------------+
| root          | %             |
| root          | 192.168.0.106 |
| mysql.session | localhost     |
| mysql.sys     | localhost     |
| root          | localhost     |
+---------------+---------------+
5 rows in set (0.00 sec)

接下来查看主服务器 binlog 记录状态:

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      601 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

随后登录到从节点mysql,连接主服务器并设置复制的起始节点:

mysql> change master to master_host='192.168.0.105',master_user='root',master_password='masterPwd',master_log_file='mysql-bin.000001',master_log_pos=601,master_port=3306;
//其中master_log_file为上面查看信息中的File信息,master_log_pos为Position信息

启动slave服务并查看状态:

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.0.105
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 154
               Relay_Log_File: localhost-relay-bin.000005
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

接下来可以在主节点mysql上创建数据库或表进行测试,如果从节点上也出现相应数据库或表则完成主从复制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值