mysql5.7 主从复制_mysql5.7 主从复制

1c7c99d2abce3b8fbc9ea17a7f2821dd.png

注意事项:

主库全库备份完查看该文件binlog pos标记位

文件名为:binlog_pos_innodb 记录当时mysql备份时主库的标记为

环境说明:

两台安装在CentOS7.4的MySQL5.7.22服务器:master 和 slave

Master服务器:

IP:192.168.80.51

Port:3306

Slave 服务器:

IP:192.168.80.52

Port:3306

配置步骤:

1、 修改master的my.cnf配置文件,开启记录日志并设置server-id。

2、 修改slave的my.cnf配置文件,开启读取二进制日志并设置server-id。

3、 在slave上启动slave与master的连接。

4、 检查是否配置成功与排错。

1、 master 库my.cnf配置文件,在[mysqld]下添加如下配置:

A SERVER:

[client]

user = pmostc

password = pmostc

port = 3306

socket = /tmp/mysql.sock

[mysqld]

user = mysql

port = 3306

socket = /tmp/mysql.sock

basedir = /workspace/app/mysql/

datadir = /workspace/data/mysql/

tmpdir = /tmp

pid-file = /workspace/data/mysql/mysql.pid

bind-address = 127.0.0.1

log-bin=mysql-bin

server-id=1

log-error=mysqld.log

replicate-ignore-table=database.table

log-slave-updates = 1

说明:

log-bin 配置的是开启二进制日志,并将日志写在配置的路径上。记录的日志将以master-bin.000001 的方式进行记录。

log-bin-index 配置的是二进制日志记录文件的目录。该文件中每一行都是二进制日志文件的路径。

server-id是该MySQL服务器的服务ID,用于区分在主从配置中的其他服务器。

配置成功后,重启mysqld服务。

注意:如果不定义log-bin的文件名,则会以hostname主机名命名,一旦主机名修改,则会因为找不见二进制文件报错。所以最好还是显示指定文件名。

2、 slave 从my.cnf配置文件,在[mysqld]下添加如下配置:

[client]

user = pmostc

password = pmostc

port = 3306

socket = /tmp/mysql.sock

[mysqld]

user = root

port = 3306

socket = /tmp/mysql.sock

basedir = /workspace/app/mysql/

datadir = /workspace/data/mysql/

tmpdir = /tmp

pid-file = /workspace/data/mysql/mysql.pid

bind-address = 127.0.0.1

server_id = 1921688052

binlog_format=mixed

relay-log = relay-bin

relay-log-index = relay-bin.index

report-host=

report-port=22988

log-bin=mysql-bin

log-error=mysqld.log

replicate-ignore-table=database.table

log-slave-updates = 1

server-id和master意义一样,用于区分不同的mysql服务器。

relay-log用以记录收到的中继二进制日志。relay-log-index用以保存收到的日志路径索引。如果不显示指定文件名,则以hostname值命名。

保存后可以重启mysqld服务。

3、全量备份主数据库

mysqldump -uroot -p123456 database > database.sql

4、在从库恢复主库全量备份数据

mysqldump -uroot -p123456 database < database.sql

恢复完数据库并重启mysql服务

5、 在slave上启动slave与master的连接。

在slave上登录到mysql,在mysql>:下进行操作。

3.1、mysql>stop slave; //停止slave。

配置标记为同步

mysql> CHANGE MASTER TO MASTER_HOST='192.168.80.51',

-> MASTER_USER='repl',

-> MASTER_PASSWORD='123456',

-> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=0;

3.3、mysql>start slave;

4、检查是否配置成功与排错

mysql>show slave status \G;

在打印出来的状态下,查看以下两个参数的值:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果这两个参数的值都是yes,则运行正常,可以在master数据库上添加一个数据库或者添加一张表,检查slave数据库上是否存在。

如果 这两个参数有任何一个不是 Yes,则说明存在问题。可以查看slave上的数据库错误日志文件查看错误原因。

Slave_IO_State, Slave_IO_Running, 和Slave_SQL_Running表明slave还没有开始复制过程。

常见的错误原因:

1、 server-id 一致。

2、 用户权限不够。需要的权限包括:

REPLICATION SLAVE,RELOAD,CREATE USER,SUPER。

GRANT REPLICATION SLAVE,RELOAD,CREATE USER,SUPER ON . TO {USER}@{IP_ADDR} WITH GRANT OPTION;

grant replication slave,replication client on . to slave@'192.168.80.52' identified by "123456";

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值