mysql(mariadb)数据库的主从复制

环境准备,准备2台机器 ,一个为主 一个为从


主库配置如下:

1.第一步:编辑mysql的配置文件

vim /etc/my.cnf
写入如下内容
[mysqld]
server-id=1 # 设置一个id主从之间ID不能相同
log-bin=s17-mysql-bin # 日志的名字 自己设


2.创建一个用于同步的用户

create user 'shixun'@'%' identified by 'shixundsb';

# 创建 shixun 这个用户 %表示可以从任何IP登录 密码 shixundsb

3.给予这个账号,一个从的身份
grant replication slave on *.* to 'shixun'@'%';
# 赋予这个主从复制的用户 操作 所有库所以表的权限 %表示可以从任何IP登录
# slave 从的身份


4.导出当前数据库的数据,发送给从库,进行导入
mysqldump -u root -p --all-databases > /tmp/db.dump

5.发送主库的mysql数据,给从库
scp /tmp/db.dump root@从库ip:/opt/



(E325:注意
发现交换文件".XX.XX.swp"
出现这种情况就 rm -rf .XX.XX.swp 删掉就好

从库配置如下:

1.编辑从库的 mysql配置文件,写入 一个 身份id号,区别于主库
vim /etc/my.cnf
写入主机身份id
server-id=10 #不能喝主库一样

# 2,3,4 步骤都是在从数据库中敲的
2.通过一条命令,确保主从成功


change master to master_host='192.168.11.229', # 给从库指定一个 主库
master_user='shixun',
master_password='shixundsb',
master_log_file='s17-mysql-bin.000001', #用show master status;
master_log_pos=1510;

3.开启slave同步 # 在从库中执行

start slave ;


4.检查主从同步是否正常
show slave statusG # 格式化输出 用此条命令来查看

 

 

5.可以测试往主库写入数据,查看从库数据
show databases ;
如果一致的话,说明同步成功

原文地址:https://www.cnblogs.com/yuchen1301152/p/10545824.html