6.错误处理1:
7.错误处理2:
1.配置主服务器
vim /etc/my.cnf (存放配置文件的地方每个人的不一样,可根据mysql --help | grep my.cnf 或者 find / -name my.cnf 查看)
配置三个参数:
server-id=1 # 本数据库的服务id
log-bin=master-bin #启用二进制日志;key值的名字固定,value表示你定义 的二进制文件的名字.可以自定义
log-bin-index=master-bin.index # 指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
保存退出::wq
重新启动mysql(启动方法因你的服务器各异)
先service mysqld stop; 然后 service mysqld start
或者直接service mysqld restart
选配:
// 也可以配置需要同步的数据库和忽略的数据库(选填)
#不同步的数据库,可设置多个
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=mysql
#指定需要同步的数据库(和slave是相互匹配的),可以设置多个
binlog-do-db=test
注:不配置则默认所有数据库
2.配置从服务器
同样修改从服务器上数据库配置,添加server-id,不要和主服务器重复
server-id=2 # 本数据库的服务id
按照步骤一重启。
3.锁表备份主服务器数据并导入从服务器数据库
命令行登录主数据库 mysql -uroot -p
创建复制权限的用户
grant replication slave on . to slave@“%” identified by “slave”;
flush privileges;
数据库锁表,不让写数据; 生产环境中必须锁,测试环境无需锁
flush tables with read lock;
输入:show master status; #查看master的状,file是二进制文件,position记录当前操作sql的步骤数
记住这两个参数,保存起来,配置从节点服务时候需要使用。
show master status;
(注意不是sql的数量,因为一条sql包含了多个步骤,所以不是sql语句的条数)
导出已有数据:
mysqldump -uroot -p --all-databases > data20191029.sql
导出成功以后:在当前目录下可以看到这个data20191029.sql文件
将压缩文件上传至从服务器:
scp data20191029.sql root@192.168.11.24:/var/lib/mysql/
登录从服务器导入到当前数据库目录
登录mysqlServer,然后执行
source /var/lib/mysql/data20191029.sql;
4.备份完成后解锁表
输入unlock tables; 解锁表写操作,主数据库到此配置完毕
unlock tables;
5. 登陆从服务器的mysqlServer指定master数据库ip、slave用户密码、binlog文件号和位置号
change master to
master_host=‘192.168.11.20’,
master_port=3306,
master_user=‘slave’,
master_password=‘slave’,
master_log_file=‘master-bin.000001’,
master_log_pos=55390;
开启从节点服务状态;stop slave;停止服务,出错时先停止,再重新配置
start slave;
输入:show slave status \G; 查看从数据库状态(如果Slave_IO_Runing 和 Slave_SQL_Runing都是yes,则表示配置成功)
show slave status \G;
6.错误处理1:
因为我的从数据库是直接从主数据复制过来的镜像,所以show slave status \G;的时候Slave_IO_Runing参数为NO,报错代码是Fatal error: The slave I/O thread stops because master and slave have equal
查看服务器uid名称:
vim /var/lib/mysql/auto.cnf
结果如下:和主服务器上查看的一样
解决方法:
先停止从节点服务:
stop slave;
停止从库的mysqld服务,删除他的auto.cnf文件,再启动数据库服务即可。
service mysqld stop
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
service mysqld start
然后再开启从节点服务,即可解决。
start slave;
show slave status \G;
记录一次大坑:
这后面一定不要有空格,不然会报语法错误。查了我半天 才找出来原因
7.错误处理2:
错误为:
Got fatal error 1236 from master when reading data from binary log: 'A slave with the same server_uuid/server_id as this slave has connected to the master; the first event ‘master-bin.000003’ at 734457224, t
he last event read from ‘./master-bin.000003’ at 745608042, the last byte read from ‘./master-bin.000003’ at 745608042.’
解决方法:
1.输入一下指令查看server_id值。
show variables like ‘%server%id%’;
在几台从服务器上查看一下server_id是否重复,由于我开始只有一台从服务器,由于运维在不知情的情况下,用从服务做了镜像克隆了从库,分配了几台新的服务器,结果把从数据库的配置都拷贝到了新服务器上。所以在那几台新服务器上输入该指令,就可以看到相同的信息。
2. 如果此台服务器也用作从库,则修改/etc/my.cnf中server_id的配置。
vim /etc/my.cnf
3.如果只是server_uuid相同,删除auto.cnf文件(auto.cnf文件在/etc/my.cnf中datadir配置的目录下),然后重启数据库,数据库会重新生成server_uuid和auto.cnf文件(默认在/var/lib/mysql目录下)
如果不需要新增的,直接停止数据库即可。如果需要新增的,则需要跟换server_id并删除auto.cnf,再重启mysql和slave数据库节点。
service mysqld stop
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
service mysqld start
4.我这里只保留一台从数据库,所以我停掉了其他数据库。然后再去报错的从数据库里登录:mysql -uroot -p,然后重启节点。
stop slave;
start slave;
8.错误处理3
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.31.40
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000335
Read_Master_Log_Pos: 1065997760
Relay_Log_File: localhost-relay-bin.001016
Relay_Log_Pos: 518212022
Relay_Master_Log_File: master-bin.000335
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1146
Last_Error: Error executing row event: ‘Table ‘htlb_product.t_source2031783883_dstream_t’ doesn’t exist’
Skip_Counter: 0
Exec_Master_Log_Pos: 518211807
Relay_Log_Space: 1065998234
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/4154871350f40eeb4cf843187a0dff9e.jpeg)
最后
给大家送一个小福利
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://img-blog.csdnimg.cn/img_convert/4154871350f40eeb4cf843187a0dff9e.jpeg)
最后
给大家送一个小福利
[外链图片转存中…(img-qSZ3HE93-1713757647970)]
附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
[外链图片转存中…(img-RrcJxFBC-1713757647970)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!