目录
4.5.4.指定主库的ip 账号密码 日志文件 从什么时候推送日志文件
mysql主从就是说,使用多台mysql服务器,实现对于数据的读写分离,分担单台mysql服务器的压力,使用一台服务器作为mysql主库,在这台服务器上实现对数据的写的操作,然后使用一台或多台服务器作为mysql从库,来实现对数据的读的操作
我们都知道mysql是一个关系型数据库,用来存储我们的数据,那么就会有对于某一张表的curd,当我们的访问量和操作量 都比较大时,我们就有可能出现读写冲突,或者压力过大等问题。所以我们采用主从的方式来将数据的读写操作分离,一方面防止读写冲突,另一方面也能减轻单台mysql的压力,提高系统的扩展性和可用性。
当我们在mysql主库上进行写的操作时,主库会将操作进行备份,存储到二进制日志binlog中,由从库的I/O线程来读取binlog日志的内容,将主库中写的操作读取到从库并转存到从库的中继日志relaylog中,从库通过SQL线程将relaylog中的内容进行读取并写入库中,实现主从数据同步
4.2.保证自己的mysql可以远程访问--以前笔记有设置远程访问
grant replication slave on *.* to 'root'@'192.168.192.131' identified by 'root';
flush privileges;


输入 vi/etc/my.cnf进入编辑模式

输入配置内容

#mysql 服务ID,保证整个集群环境中唯一
server-id=1#mysql binlog 日志的存储路径和文件名
log-bin=/var/lib/mysql/mysqlbin#是否只读,1 代表只读, 0 代表读写
read-only=0#忽略的数据, 指不需要同步的数据库
binlog-ignore-db=mysql
systemctl restart mysqld
mysql -root -p密码
show master status;

File : 从哪个日志文件开始推送日志文件 给从节点 Position : 从哪个位置开始推送日志 从什么位置开始同步 Binlog_Ignore_DB : 指定不需要同步的数据库
输入 vi /etc/my.cnf进入编辑模式

#mysql服务端ID,唯一
server-id=2#指定binlog日志
log-bin=/var/lib/mysql/mysqlbin
systemctl restart mysqld
mysql -uroot -p密码
change master to master_host= '192.168.74.152', master_user='root', master_password='1234', master_log_file='mysqlbin.000001', master_log_pos=154;

指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。
start slave;

show slave status \G;
出现两个yes 是成功的



1.查看主从的server_id变量
show variables like 'server_id';

从上面的情形可知,主从mysql已经使用了不同的server_id
2.查看auto.cnf文件
找auto.cnf文件文件的位置
find / -name auto.cnf
![]()


我们发现两个的UUID相同
3.删除其中一个的auto.cnf文件

4.重启mysql
service mysql restart
5.进入mysql
mysql -uroot -p1234
6.指定当前从库对应的主库的IP地址,用户名,密码,从哪个日志文件开始的那个位置开始同步推送日志。
change master to master_host= '192.168.74.152', master_user='root', master_password='1234', master_log_file='mysqlbin.000001', master_log_pos=154;
7.开启同步
start slave;
9.查看同步的状态
show slave status \G;
10. 停止同步操作
stop slave;