美文网首页
MySQL 主从复制

MySQL 主从复制

作者: 陈小陌丿 | 来源:发表于2017-02-08 10:12 被阅读0次

进入 mysql 创建用户

CREATE USER 'slave'@'%' IDENTIFIED BY 'flzx3qc1001'

查看用户信息

select * from mysql.user where user='slave' \G

设置权限

GRANT SELECT,REPLICATION SLAVE ON *.* TO 'slave'@'%'; 

查权限是否设置成功

select * from mysql.user where user='slave' \G

复制两个虚拟机

因为我是在虚拟机操作 所以只要复制就可以

同源策略,将主库的库文件复制到从库

注意,先要停止Mysql服务,主库从库都要停止。

service mysql stop

库位置/var/lib/mysql,mysql文件夹就是这个所有的库,需要把这个文件夹复制到从库。现将这个文件进行压缩。

tar -zcvf mysql.tar.gz ./mysql/

首先进入从库,查看从库是否有了这个压缩文件,并进行移动到从库的/var/lib/

cd /tmp/
mv mysql.tar.gz /var/lib/

将从库mysql文件夹进行备份,以防失败。

cd /var/lib/
mv mysql mysql.bak

将主库传过来的mysql.tar.gz 解压,这就完成了同源策略

tar -zxvf mysql.tar.gz

这时,就可以主从就都可以开启mysql服务了。

service mysql start

配置主库和从库

主库配置/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld] 
server-id               = 1  
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog-ignore-db=mysql   //不进行主从复制的库
# 将bind-address注释,为了能够使用从库服务器IP登陆主库
#bind-address           = 127.0.0.1

从库配置/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld] 
server-id               = 2
log_bin                 = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog-ignore-db=mysql

修改完后重启数据库

service mysql restart

查询主数据库状态

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      154 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

** 如果为空说明 数据库没重启。。 **

从库执行命令

CHANGE MASTER TO 
    MASTER_HOST='192.168.20.14',
    MASTER_USER='slave', 
    MASTER_PASSWORD='flzx3qc1001',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=154;

//CHANGE MASTER TO MASTER_HOST='192.168.20.14', MASTER_USER='slave', MASTER_PASSWORD='flzx3qc1001', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;

参数解析

MASTER_HOST:主服务器IP
MASTER_USER:在主服务器中创建的帐号,slave
MASTER_PASSWORD:自己定义的密码,    flzx3qc1001
MASTER_LOG_FILE:上一步查看的 主服务器的FILE文件,mysql-bin.000001
MASTER_LOG_POS:上一步查看的    主服务器的Postion位置,笔者是154

开始同步 从服务器执行

START SLAVE;

停止复制

STOP SLAVE;

查看状态

SHOW SLAVE STATUS \G

发现有一个错误

Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

意思是 主的UUID 和 从的UUID 不可以一样, 就是复制虚拟机的原因。。。

删除 从服务器的 UUID配置

文件地址 /var/lib/mysql/auto.cnf

# 切换目录
cd /var/lib/mysql

# 重命名
mv auto.cnf auto.cnf.back

# 重启服务
service mysql restart

# 进入mysql 后 查看状态
SHOW SLAVE STATUS \G

Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count: 86400

相关文章

  • MySQL如何配置主从复制,如何修复主从复制出现的异常?

    MySQL如何配置主从复制,如何修复主从复制出现的异常? 一、什么是Mysql主从复制 MySQL主从复制是其最重...

  • MySQL-主从复制&读写分离

    零、本文纲要 一、MySQL主从复制 主从复制 主从复制过程 配置主从复制 二、MySQL读写分离 读写分离 Sh...

  • Mysql 主从复制

    Mysql 主从复制 MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据...

  • 主从复制 & MHA

    一,mysql主从复制 (1)场景一(主从复制 _ 全新环境下) (2)场景二(主从复制 _ mysql已经使用一...

  • mysql主从复制

    构建MySQL主从复制 MySQL的主从复制和mysql的读写分离两者有着紧密联系,数据的读写分离实在主从复制的基...

  • Spring Data JPA 使用主从数据源

    Mysql 配置主从复制 参考:Mysql主从复制-半同步复制[https://www.jianshu.com/p...

  • MySQL集群篇

    1 集群之主从复制 1.1 主从复制概述 MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群...

  • 深度探索MySQL主从复制原理

    概要 MySQL Replication (MySQL 主从复制) 是什么? 为什么要主从复制以及它的实现原理是什...

  • 【转】MySQL 8.0复制改进

    1 - MySQL主从复制模型 我们从最基本的主从复制模型开始说起,下图是最经典的MySQL主从复制架构图: My...

  • mysql主从代理

    mysql主从复制+读写分离 环境: mysql主:193.168.1.1 mysql从:193.168.1.2 ...

网友评论

      本文标题:MySQL 主从复制

      本文链接:https://www.haomeiwen.com/subject/jpjvittx.html