环境准备,准备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 status\G # 格式化输出 用此条命令来查看
5.可以测试往主库写入数据,查看从库数据
show databases ;
如果一致的话,说明同步成功