Linux下MySQL的主从复制以及主主复制做双机热备

服务器214(master)和215(slave)主从复制,服务器214和216(masters)主主复制;

主从复制

主机服务器:

1、

修改主机名称 

# vi /etc/hostname   

编辑内容    主机为master     从机为slave 

退出

# hostname master

2、

 开启3306端口

firewall-cmd --add-port=3306/tcp

启动MySQL:

service msyql start

如果报错PID file could not --------

查看mysql进程 :

ps -ef|gerp mysql

kill -9 进程号

授权外网ip可以连接:

grant all on *.* to 'root'@'%' identified by 'root';

3、修改主库配置文件

#vi /etc/my.conf

编辑文件

server-id=1

log-bin=mysql-bin

server-id的值是自己定的。这里就主机为1...,从机为5..., 这样方便区分识别。

4、重启

复机服务器:

通过navicat连接数据库,在主库查看Master信息

Show master status

Linux下MySQL的主从复制以及主主复制做双机热备_第1张图片

 

5、将从库挂在到主库上,修改从库服务号

# vi  /etc /my.cnf

编辑

server-id=5

6、重启

7、从节点挂载到主节点

在从表的可视化工具navicat上执行挂载语句:

/*配置注解 主机名/端口号/用户名/密码/二进制文件名称/同步的位置 */

    CHANGE master to MASTER_HOST='10.100.10.10000',MASTER_PORT=3306,

    MASTER_USER='root',MASTER_PASSWORD='root',

    MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=120

 

启动从节点:

start slave

测试主从库是否有下面的两个yes状态

show slave status

Linux下MySQL的主从复制以及主主复制做双机热备_第2张图片
8、成功

主主复制双机热备

1、同主从复制的主机服务器,操作两次

要点

主主复制中必须要解决的事情就是自增主键的问题。如果服务器1的数据库表1主键id增加到10了,此时二进制数据还没到达服务器2,如果服务器2对应的表恰好要插入数据,那么新数据主键id也是10。

2、修改主机master配置文件

# vi /etc/my.cnf

编辑:
log-bin=mysql-bin
server-id=1
replicate-do-db=test  #要同步多个数据库,就多加几个replicate-db-db=数据库名 
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=1
sync_binlog=1
auto_increment_increment=2   #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=1   #起始值。一般填第n台主MySQL。此时为第一台主MySQL

3、重启

4、修改主机msaters配置文件

编辑:

server-id=2
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=2
replicate-do-db=test

5、重启

6、配置主库master的数据备份到主库masters

登录主库master,在主库master中添加一个主库masters(本人用的root账户)可以登录的备份账号

登录msyql添加MySQL访问账户

GRANT REPLICATION SLAVE ON *.* TO '账户'@'%' IDENTIFIED BY '密码';

FLUSH PRIVILEGES;

7、在主库msater(214)中查看数据库master的状态

show master status;

8、在主库masters(216)如下操作

进入mysql

stop slave                                                         #这里要是之前有配置就先关闭

CHANGE MASTER TO                
MASTER_HOST='数据库ip',
MASTER_USER='用户名',
MASTER_PASSWORD='密码',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002',         #主库master中的File
MASTER_LOG_POS=340;                               #主库master中的Position

mysql> start slave;                                              #change后要start slave

在navicat中的上述操作

Linux下MySQL的主从复制以及主主复制做双机热备_第3张图片

至此主机master的数据备份到主机masters完成,主机masters到master重复操作

 

你可能感兴趣的:(Linux下MySQL的主从复制以及主主复制做双机热备)