Linux环境下的Mysql主从同步搭建


提前安装好mysql

主服务器:centos7.0 IP:10.20.0.171
从服务器:centos7.0 IP:10.20.0.195

一、主服务器相关配置

  1. 创建同步账户并指定服务器地址
mysql -uroot -p
use mysql
grant replication slave on *.* to 'sgrepl'@'192.168.3.61' identified by 'sgrepl';
flush privileges; #刷新权限

my.cnf配置,一定要开启log_bin

[mysqld]
server-id=100 
log_bin=mysql-bin
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

replicate-do-db=ourneeddb  #要同步的数据库
replicate-ignore-db=mysql  #不需要同步的数据库

重启mysql

service mysql restart
  1. 查看主服务器master状态
    在这里插入图片描述
  2. 导出数据库ourneeddb 之前先锁定数据库
flush tables with read lock;    #数据库只读锁定命令,防止导出数据库的时候有数据写入
unlock tables; #解除锁定
导出数据库结构及数据:mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql

二、从库的配置

  1. 修改/etc/my.cnf配置文件vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
server-id = 200 
log_bin = mysql-bin 
replicate-do-db = ourneeddb  
replicate-ignore-db = mysql
  1. 导入数据库ourneeddb

  2. 配置主从同步
    在从库机器上进入

mysql -uroot -p
stop slave;
change master to master_host='192.168.3.60', master_user='sgrepl',master_password='sgrepl',master_log_file='mysql-bin.000002',master_log_pos=154;

master_log_file和master_log_pos是上边主节点的

start slave;
show slave status\G;

在这里插入图片描述
看下效果
在这里插入图片描述
在这里插入图片描述
若start slave出问题就reset slave;

三、容易出的问题

启动slave时报错Slave failed to initialize relay log info structure from the repository

 reset slave;
 start slave;

Slave_IO_Running为no的话
看日志
在这里插入图片描述
有可能是在这里插入图片描述
里面的server-id主从相同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值