想法:
因为笔者有两台服务器,一台在阿里云,一台在家里。也都装好了mysql数据库。 于是有了一个想法 就是为何不配置一个主从,这样我在阿里云上数据库的执行操作也可以同步到我本地的机器。
需求:
个人需求 - mysql主从数据同步
实际应用场景:
暂无,只是为了实际操作一把如何配置主从同步数据
参考博客:
https://www.cnblogs.com/lelehellow/p/9633315.html
修改主库配置
1.修改主库master的mysql配置
vim my.cnf #修改mysql的配置文件
[mysqld]
...
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
2.重启主库mysql服务,并创建用于同步账号
systemctl restart mysql;
#登陆mysql
mysql -uroot -p
#创建用户(这里ip可以是内网slave服务器的地址,或则'%'任意ip地址)
CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';
#分配权限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85'
#刷新权限
flush privileges;
3.查看master状态,记录二进制文件名(mysql-bin.000002)和位置(780)
修改从库配置
1.修改从库slave的mysql配置
vim my.cnf #修改mysql的配置文件
[mysqld]
server-id=2 #设置server-id,必须唯一
2.重启mysql,并执行同步sql语句
mysql -uroot -p
#执行同步master的sql语句
CHANGE MASTER TO
MASTER_HOST='主库master的ip地址',
MASTER_PORT=3307, #若未修改则可以不输入端口号
MASTER_USER='repl',
MASTER_PASSWORD='slavepass',
MASTER_LOG_FILE='mysql-bin.000002', #主库binlog日志文件
MASTER_LOG_POS=120; #binlog日志记录位置
#刷新权限
flush privileges;
3.启动slave同步进程:
start slave;
4.查看同步状态
show slave status\G;
重点关注:
slave_io_running : yes
slave_sql_running: yes
即当前主从库已正常运行
补充主库master的mysql配置:
# 不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
# 只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game
题外话![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062613263026.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTMwODcxOA==,size_16,color_FFFFFF,t_70)
我这边在创建账户的时候,创建的repl,实际博客中是rep1…😅