2021-05-19

主从的两种配置

第一种配置方式

mysql 启动:systemctl start mysql

配置主文件:vi /etc/my.cnf

添加:

server_id=1

gtid_mode=on

enforce_gtid_consistency=on   #强制gtid一致性

#binlog

log_bin=master-binlog

log-slave-updates=1

binlog_format=row    #row格式 其他格式可能造成数据不一致

 

#relay log

skip-slave-start=1     #防止复制线程随mysql服务自动启动

进入数据库:mysql -uroot -p  (回车输入密码)

在主服务器上创建复制帐户: grant replication slave on *.* to 'repl'@'<从服务器的IP地址>%' identified by '123456';

退出数据库 exit

重启数据库:service mysql restart

在主服务器上备份全库:mysqldump -uroot -p --master-data=2 --single-transaction --set-gtid-purged=OFF -A > /tmp/mysqlbak_`date +%Y%m%d`.sql

重启数据库:service mysql restart

查看信息:ll /tmp/mysqlbak_20210519.sql (输入mysqlb之后直接用TAB键)

(复制/tmp/mysqlbak_20210519.sql一会要用)

进入数据库:mysql -uroot -p

导入mysql主备份的mysql到从服务器上:source /tmp/mysqlbak_20210519.sql             (source 一下刚才复制)

查看数据库:show databases;

配置从主机

mysql启动:systemctl start mysql

配置从的文件:vi /etc/my.cnf

添加: (主和从的server id 不能相同)

server_id=2                                 

gtid_mode=on

enforce_gtid_consistency=on     

#binlog

log_bin=slave-binlog

log-slave-updates=1

binlog_format=row

 

#relay log

skip-slave-start=1

重启数据库:service mysql restart

进入数据库:mysql -uroot -p

查看gtid模式是否开启:show variables like '%gtid%';            ( gtid_mode是ON就是开启了)

配置从服务器上的连接:

mysql> CHANGE MASTER TO

    ->   MASTER_HOST='192.168.100.10',  (这个IP要用主服务器的IP地址)

    ->   MASTER_USER='repl',                                         

    ->   MASTER_PASSWORD='123456',           (要与前面的grant replication slave on *.* to                                'repl'@'192.168.137.%' identified by '123456';命令配置的一致)    

    ->   MASTER_PORT=3306,

    ->   MASTER_AUTO_POSITION=1,

    ->   MASTER_CONNECT_RETRY=10;

slave 开启:start slave

查看状态:show slave status\G

第二种配置方式

第一台主机上

修改配置文件:vi /etc/my.cnf

添加:

server_id=1

gtid_mode=on

enforce_gtid_consistency=on   #强制gtid一致性

#binlog                       

log_bin=master-binlog

log-slave-updates=1

binlog_format=row    #row格式 其他格式可能造成数据不一致

 

#relay log

skip-slave-start=1     #防止复制线程随mysql服务自动启动

重启mysql服务:/etc/init.d/mysql restart

export PATH=$PATH:/usr/local/mysql/bin/

备份mysql库:mysqldump -uroot -p mysql --set-gtid-purged=OFF > /tmp/mysql.sql

创建一个库保存数据:mysql -uroot -p -e "create database kei"

将mysql库恢复成新建的库,作为测试数据: mysql -uroot -p kei < /tmp/mysql.sql

进入数据库:mysql -uroot -p

创建同步数据用户并赋予权限:grant replication slave on *.* to 'repl' @192.168.100.6 identified by '123456';

(192.168.100.6是第二台主机的IP地址)

将表锁住,保持表内数据不变:flush tables with read lock;

显示主机状态: show master status;

配置第二台主要机

修改配置文件:vi /etc/my.cnf

添加:

server_id=2                                

gtid_mode=on

enforce_gtid_consistency=on     

#binlog

log_bin=slave-binlog

log-slave-updates=1

binlog_format=row

 

#relay log

skip-slave-start=1

重启mysql 服务:/etc/init.d/mysql restart

在第一台主机止将文件拷贝到第二台主机上:scp /tmp/mysql.sql root@192.168.100.6:/tmp/

export PATH=$PATH:/usr/local/mysql/bin/

在第二台主机上创建一个和第一台主机上一样的库:mysql -uroot -p -e "create database kei"

将文件内容导入库: mysql -uroot -p kei < /tmp/mysql.sql

进入数据库:mysql -uroot -p 

数据库配置“change master to master_host='192.168.100.10',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;

(192.168.100.10是第一台主机的IP地址)

在第一台主机上执行解锁表:unlock tables;

在第二台主机开启slave服务:start slave;

查看状态:show slave status\G

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值