二进制日志(binary log)中记录了对MySQL数据库执行更改的所有 *** 作,不包含select和show,主从同步主要是依赖该文件实现的。
docker容器==》mysql(没使用容器的可以越过第一步,自行准备两数据库)
1、docker run mysql
进入mysql : docker exec -it mysql /bin/sh
2、安装vim命令(如第三步中提示没有vim命令时执行)
apt-get update
apt-get install vim
3、修改配置文件(进入数据库参考4.1)
vi /etc/mysql/mysql.conf.d/mysqld.cnf
3.1、在[mysqld]下添加
server-id=1 log_bin=master-bin log_bin_index=master-bin.index binlog_do_db=test #需要同步的数据库
4、 在主数据库创建(从服务器的)用户,并赋予同步权限
4.1、进入mysql数据库(-u后面用户名,-p后面密码)
mysql -uroot -p123456
4.2、#创建从数据库的masterbackup用户和权限(192.168.17.%为从数据库ip)
grant replication slave on *.* to masterbackup@'192.168.17.%' identified by '123456';
4.3、#退出mysql
exit;
4.5、重启mysql
service mysql restart
4.6、(重启后重新进)
查看主服务器状态
show master status;
(注意此时的File和pos)
5、进入从数据库
修改配置(参考第三步)
server-id=2 relay-log=slave-relay-bin relay-log-index=slave-relay-bin.index
6、进入从数据库
mysql -uroot -p123456
7、连接主数据库
(192.168.17.130为主数据库的ip,
master_log_file,master_log_pos为show master status查询出来的file和pos,
master_user为主数据库创建用户的username,
master_password为密码)
change master to master_host= '192.168.17.130', master_port=3306, master_user='masterbackup', master_password='123456', master_log_file='master-bin.000001',master_log_pos=154;
8、 启动slave数据同步
#启动slave数据同步
mysql> start slave;
#停止slave数据同步(若有需要)
mysql> stop slave
9、 查看slave信息(以下两个running都为yes为主从同步成功)
mysql> show slave statusG;
Slave_IO_Running: yes
Slave_SQL_Running: Yes
10、忽略同步错误,继续同步
从库:
stop slave; set global sql_slave_skip_counter =1; stop slave;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)