mysql数据库主从同步

一、基本流程

1.主库配置主从配置项,创建用于同步的账号,进行锁表,获取二进制日志的信息,备份数据
2.从库配置主从配置项,备份数据导入,从库配置主库信息,开启主从同步,验证信息
3.主库表解锁,手动创建库或者表,去从库验证是否同步

二、主库my.cnf配置

​
#我之前的文章《mysql5.7.40数据库部署安装》中my.cnf中已经包含了这块内容可以直接拿那个my.cnf使用

#找到[mysqld],在下面加入以下两行内容:

log-bin=mysql-bin

#id可自取,我一般取本机ip最后的网段

server-id=123

#修改后重启数据库

service mysql restart

​

三、创建同步账号

#登录主库mysql后台的bin路径下执行

./mysql -u root -p

#回车后输入数据库密码.可以复制粘贴,密码输入时不会显示

#回车进入数据库,然后依次执行以下两行命令

#设置账号salve(@前面的),密码设置为slave(最后的这个),%是设置可以通过其他服务器远程登录

CREATE USER 'slave'@'$slave_ip' IDENTIFIED BY '$slave_pass';

#如果账号写的是salve,则不需要修改任何内容,如果设置其他账号名,则需要将"slave"修改掉

grant replication slave on *.* to 'slave'@'$slave_ip' identified by '$slave_pass';

四、锁表操作

#进行锁表操作,执行以下命令

flush tables with read lock;

五、获取主库二进制日志信息

#执行以下命令
show master status;

#会打印如下内容:记住File和Position的值,从库同步时会用到

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |   524516 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

 六、主库数据备份

#备份数据库的两种方法(如果主从都是辛苦不需要迁数据,部署完直接跳过六和八步骤即可)

#第一种,在mysql安装路径下的bin路径下,需要修改的内容-p后面的是数据库密码需要修改,mysql.sock 根据命令{find / -name mysql.sock}

./mysqldump -uroot -p'My9Sql6?a' -S /tmp/mysql.sock --all-databases > /home/backmysql/mysql_bak.$(date +%F).sql

#第二种,数据量太大磁盘不足再就是备份时间过长,建议用下面的命令,被分成.gz格式,可以压缩成源文件的1/3大小,修改的部分和第一种相同

./mysqldump -uroot -p'My9Sql6?a' -S /tmp/mysql.sock --all-databases | gzip > /home/backmysql/mysql_bak.$(date +%F).sql.gz

七、从库操作

#前提:从库也按照正常数据库安装搭建好

#修改my.cnf(使用 《mysql5.7.40数据库部署安装》进行安装的不需要再次修改)

#[mysqld]下面增加以下内容,值建议取本机ip最后的网段数字

server-id=223

#重启数据库

service mysql restart

 

八、备份数据库导入

#将在主库备份导出的数据放到从库服务器上,记录存放路径

#进入从库的bin路径执行以下命令(第二种备份方式的记得提前解压)

./mysql -uroot -p'My9Sql6?a' -S /tmp/mysql.sock < /home/backmysql/mysql_bak.2023-3-26.sql

 

九、登录从库进行主从配置

#从库bin下执行登录

./mysql -u root -p

#修改以下内容中项目实际的信息,在命令行依次输入一下内容,粘贴一行回车,粘贴一行回车操作

#注,此行没有';',所以会进入内层命令,方便执行多行,修改信息后的命令依次粘贴回车就好

change master to

#主库ip
master_host='172.0.0.0',

#主库端口
master_port=3306,

#主库设置的同步账号
master_user='slave',

#主库设置的同步账号密码
master_password='slave_pass',

#主库二进制日志文件
master_log_file='mysql-bin.000002',

#二进制文件位置
master_log_pos=524516;

#开启主从同步

start slave;

#在从库验证是否配置成功,执行

show slave status \G

#上述命令打印的控制台查看,以下两行内容是Yes即成功

=========================================

Slave_IO_Running:Yes
Slave_SQL_Running:Yes

=========================================

十、也可以到主库再去查看一下主从状态

#登录(略)

#查看信息

show master status \G

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值