写了半天,浏览器死机了,再打开自动保存的是我上一篇整理的博客。郁闷,瞬间没耐心好好写下去了。
主: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', #master的ip
-> master_user='backup', #备份用户名
-> master_password='123456', #密码
-> master_log_file='mysql-bin.000002', #上面截图,且要与master的参数一致
-> master_log_pos=154; #上面截图,且要与master的参数一致
2个yes 代表设置成功
在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.跳过指定数量的事务: