工作记录mysql主从复制

环境ubuntu 16.04

主配置

1.编辑主MySQL配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf

更改server-id,它位于[mysqld]段。这个数字在MySQL主从服务器群中必须唯一,这是区别MySQL的一个标识

server-id               = 128

# 找到log_bin一行,取消注释,它是mysql的二进制log文件

log_bin                 = /var/log/mysql/mysql-bin.log

# 最后,要设置需要复制的数据库

binlog_do_db       =  cnblogs

2、配置从数据库用户名密码,授权
CREATE USER 'slave'@'112.32.152.32' IDENTIFIED BY '123456';

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'112.32.152.32';
flush privileges;

3、切换到数据库 cnblogs
use cnblogs;

4.为了防止改变,锁定数据库:
FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;
输出结果;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 773 | cnblogs | | |
+------------------+----------+--------------+------------------+-------------------+

记住Position对应的数字(773)和File(mysql-bin.000001),在配置从MySQL服务器时需要用到。
导出数据库数据,如果使用mysqldump会造成数据库自动解锁,需要新开一个终端,执行完毕解锁退出;
UNLOCK TABLES;
quit;

主MySQL配置完成。


从配置

1、设置server-id

server-id               = 244

log_bin                 = /var/log/mysql/mysql-bin.log

binlog_do_db       = cnblogs

relay-log               = /var/log/mysql/mysql-relay-bin.log

relay-log是添加的,默认并没有这一行。更改完,保存退出。

2、重启MySQL服务,

3、指定主服务器ip:再次进入MySQL命令行,执行:
CHANGE MASTER TO MASTER_HOST='112.32.152.32',MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=773;

4、开启从服务
start slave;

5、查看从服务状态
show slave status\G;

 

主从同步异常,关闭从服务,手动从上个位置同步;

posted @ 2019-06-17 17:02  1553  阅读(109)  评论(0编辑  收藏  举报