起因
最近,有朋友公司的数据库由于数据量过大给宕机了,宕机了,宕机了,我就在担忧自己公司的数据库,和公司专门做数据的同事做了沟通,才知道,我们的数据库是有两个实例,分别作为主从数据库,这样主数据库做数据修改,而从数据库只做查询,这样大大减少了数据库的压力,可以保证数据库的性能速度,我们数据库还是比较安全的。听了这之后,觉得很是牛逼,自觉的把数据库主从同步列入了我的学习计划,终于抽出时间开心的去学习了
开心的打开百度,查询文档,跟着操作,哎,报错,不行
再查,文档是一样的哎,再查,有点门了,走走走,又报错
我的妈呀,还挺难安装配置的呢
在查询了很多文档,并和做数据的同事沟通之后,主从同步终于搭建好了(看下图,下图,这里是欢呼、掌声)
踩了网上文档的坑之后,我觉得我作为一个勤学的码农,必须整理出一份完整的文档,来避免后面的同学踩坑,所以所以所以,下面这篇文档他来了。
环境说明:
服务器:CentOS7
数据库:MySQL5.7.25
端口:3306、3307
3306为主数据库
3307为从数据库
一个服务器,一个数据库,两个实例搭建主从同步
第一步呢:删除数据库
先删除服务器自身带的数据库或之前装好的数据库,我为了截图,把数据库删的干干净净了,你们可以跳过这一步,哈哈
需要删除的同学们看过来:点击这里->彻底删除数据库https://blog.csdn.net/M_y_y/article/details/106499767
第二步呢:安装数据库实例
开始安装配置两个数据库实例:
需要的同学看这里->centos中安装部署两个mysql实例(主从同步实例创建)
https://blog.csdn.net/M_y_y/article/details/106468749
第三步呢:开始做主同步的配置
需要的同学看下文,哈哈哈
- 先保证两个数据库中数据一样
开始配置主数据库
- 修改my.cnf配置文件
log-bin=/usr/local/soft/mysql/mysql3306/logs/mysql-bin.log //自己存储log的位置
server-id=1 //设置数据库服务器唯一ID,这里我们指定为1。
binlog-do-db=project //设置需要同步的数据库,如果需要设置多个,则加入多条这行语句。
- 之后登陆主数据库:
- 启动3306数据库实例:
./mysql -S /usr/local/soft/mysql/mysql3306/data//mysql.sock -P 3306
- 连接3306数据库,并且输入密码:
./mysql --socket=/usr/local/soft/mysql/mysql3306/data/mysql.sock --port=3306 -u root -p
Enter password:
- 添加一个用于备份的用户:名称为slave(可自定义),密码为123(可自定义)
grant replication slave on *.* to 'slave'@'%' identified by '1234';
- 查看用户是否创建成功
use mysql;
select user ,host from user;
- 查看主机配置状态
将图片保存,以下数据在配置从库时要进行使用(注意图中圈出来的两个数据,下面需要使用的,切记切记)
show master status;
主库这时就配置完了,
现在开始配置从库
- 进入从库的my.cnf文件
添加以下命令:log-bin(你要保存的位置,个人而定)server-id(每个实例唯一标识)
log-bin=/usr/local/soft/mysql/mysql3307/logs/mysql-bin.log
server-id=2
- 重新连接mysql3307
- 创建与主机的关系
在mysql中输入命令连接主机(master_log_file和master_log_pos对应主机充查询到的信息值,是上面说了保存的信息,忘记了往上翻看):
change master to master_host='主机ip',master_user='slave',master_password='1234',master_port=3306,master_log_file='mysql-bin.000006',master_log_pos=154;
- 现在启动从机同步:
start slave;
成功
我框起来的两个数据都必须是YES才代表你成功了,成功的同学可以先欢呼了,有问题的同学不着急,请看问题解决
问题解决
Slave_IO_Running或Slave_SQL_Running有一个不是YES的,你进行同步都会不成功
如果不成功,请看下面,
(1)出现Slave_IO_Running为Connecting
解决方法:查看防火墙开了没
查看创建连接时账号密码是否正确
(2)出现Slave_SQL_Running为no
解决方法:依次输入一下命令解决
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;
show slave status\G
就是这些了,看到这里你的主从应该已经搭建成功了,如果你你你,还没有,还没有搭建成功,还是遇到错误,请不要慌张,先百度进行查询你的问题,实在不行,你还可以,你还可以在评论区留言,我看见了一定会回复的
如果你害怕我看不到,那只有这样了,看下面
首要可加我微信、如果你害羞的话还可以加我的微信群(我还是很想让你关注我公众号的)
二维码都贴在下面了,你看着办吧