MYSQL5.7主备搭建主linux 备win7

写了半天,浏览器死机了,再打开自动保存的是我上一篇整理的博客。郁闷,瞬间没耐心好好写下去了。

主:LINUX CEONTOS7(192.168.150.151)Server version:         5.7.22-log MySQL Community Server (GPL)

备:WIN7(192.168.150.1)Server version:         5.7.20-log MySQL Community Server (GPL)

LINUX是跑在虚拟机上边的。

参考文章:https://www.cnblogs.com/imweihao/p/7301537.html

只是参考,我并不是安全按照它来的。

LINUX版安装MYSQL5.7看我上篇文章,WIN版一路下一步就安装完成了。

上篇文章地址:https://blog.csdn.net/chaigang/article/details/80332214

两个MYSQL安装完成后停服务,LINUX再启服务会失败,具体原因看我上篇博客。

先修改LINUX系统的配置文件(蓝色是命令,红色是内容):

vim /etc/my.cnf

server-id=1
log-bin=/var/log/mysql/mysql-bin.log
#Bind-address=192.168.150.151
binlog-do-db=chai

expire_logs_days=7

启动MYSQL服务

service mysqld start #记得先创建MYSQLD.PID文件,不然起不来

测试log_bin是否成功开启

mysql> show variables like '%log_bin%';

master的数据库中建立备份账号backup为用户名,%表示任何远程地址,如下表示密码为1234的任何远程地址的backup都可以连接master主机

mysql> grant replication slave on *.* to 'backup'@'%' identified by '123456';

mysql> use mysql

mysql> select user,authentication_string,host from user;



[root@localhost etc]# mysqldump -uroot -p -hlocalhost chai > /opt/chai.sql      

Enter password:

导出chai这个数据库,主库配置基本完毕。

备:WIN7 

修改配置文件:C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

修改:server-id=2

添加:read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
#relay_log_recovery=1 #从机禁止写
#super_read_only=1 #从机禁止写 具体作用看参考文章吧。

登录数据库

mysql> create database chai;

D:\>mysql -uroot -p -hlocalhost chai < chai.sql #将chai.sql内容导入数据库

Enter password: ******

再登录数据库:

D:\>mysql -uroot -p

Enter password: ******

mysql> stop slave;  
Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> change master to

-> master_host='192.168.1.222', #masterip

-> master_user='backup', #备份用户名

-> master_password='123456', #密码

-> master_log_file='mysql-bin.000002', #上面截图,且要与master的参数一致

-> master_log_pos=154; #上面截图,且要与master的参数一致



mysql>  start slave;
Query OK, 0 rows affected (0.08 sec)


mysql> show slave status \G


2yes 代表设置成功


marster中创建一个新表再查看slave中是否有数据

master:

mysql> use chai;

mysql> create table test001(id int auto_increment primary key,name varchar(20) not null);

mysql> insert into test001 values(null,'will');

mysql> insert into test001 values(null,'jim');

mysql> insert into test001 values(null,'tom');

slave:

mysql> use chai;

mysql> show tables;

mysql> select * from test001;



暂时这样算是成功了。

使用中遇到的一些问题。

最近搭了两个LINUX的主主

但是最开始不同步,但是show slave status\G

状态都是正常的。经过查找原因

我建主从同步用户时用的create user test identified by test;

受权用的是grant all privileges *.* to test;

不是这种语句

GRANT REPLICATION SLAVE ON *.* TO test;

将旧用户删除,添加新用户,重新受权。再插入测试可以

还有一个问题,我的my.cnf配置文件

binlog-do-db = test,test1,test2
期间没有报错 show slave status\G

也没有错误 但是数据就同步不过去,后来改成

binlog-do-db = test

binlog-do-db = test1

binlog-do-db = test2

重启服务好了。

还有因为前边测试时两库数据会有部分不一样,我在A库删除了B库没有的数据,

show slave status\G就报错了。需要跳过这个错误

1.跳过指定数量的事务:
mysql>slave stop; -----我的版本是执行stop slave
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        #跳过一个事务
mysql>slave start -----我的版本是执行start slave
 
 



猜你喜欢

转载自blog.csdn.net/chaigang/article/details/80360254