网盘拿包
链接:https://pan.baidu.com/s/1SOFv4bgUVKUcHfe3zGBXQA
提取码:6tp9
首先准备两个服务器 , 分别安装MySQL ,
已有两个MySQL的删除从服务器的MySQL下的data目录 ,
在将主服务器下/usr/local/mysql/data目录下的auto.cnf文件删除
然后将主服务器的data目录拷贝到从服务器上实现数据一致.
以下操作环境与上篇MySQL安装文章一致 , 请根据自己的环境修改路径等等 # 号代表在终端执行的shell语句
第一步
主服务器
# service mysql stop
# rm -rf /usr/local/mysql/data/auto.cnf
# rsync -av /usr/local/mysql/data 从服务器ip:/usr/local/mysql/
从服务器
# chown -R mysql.mysql /usr/local/mysql
第二步:修改配置文件支持gtids
主服务器
# cd /usr/local/mysql
# vim my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
从服务器
# cd /usr/local/mysql
# vim my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3310
log-error=/usr/local/mysql/data/slave.err
relay-log=/usr/local/mysql/data/relaylog
server-id=20
log-bin=/usr/local/mysql/data/binlog
gtid-mode=on
log-slave-updates=1
enforce-gtid-consistency
skip-slave-start
修改完配置文件重启MySQL
第三步:创建同步用户 mysql>代表在MySQL里执行的sql语句
在主服务器上创建同步用户 mysql5.7及以下版本命令;
mysql> grant replication slave on *.* to 'slave'@'10.1.1.%' identified by '123';
从服务器:配置主从
mysql> change master to 回车
MASTER_HOST='主服务器ip', 回车注意此处有,号
MASTER_USER='slave', 回车此处写刚刚创建用户
MASTER_PASSWORD='123', 回车 同步用户的密码
MASTER_PORT=3306, 回车
MASTER_AUTO_POSITION=1; 直接;号结束
注意事项 逗号 与 分号 字符串用引号引起来
启动主从
mysql> start slave;
查询主从同步状态:
mysql> show slave status\G
常见问题报错
①大部分都是change master to语句写错了
②主从复制必须保证两台数据库实例的server-id不一致
③主服务器必须开启二进制日志;从服务器必须开启中继日志
④主从复制搭建必须保证初始数据一致
⑤主服务器必须要给从服务器创建一个复制用户,并授予复制权限
⑥Master—>Slave架构,主写会同步到从;而从写不会同步到主 ,从不能用来写
⑦从不小心写入数据导致主从失败可以通过跳过事务,或者删除从data目录重新搭建
主从结束了 , 细心就很简单