详解Mysql主从同步配置实战

 更新时间:2017年03月13日 15:16:03   作者:zilu  
这篇文章主要介绍了详解Mysql主从同步实战,实例分析了Mysql主从同步的原理和实现,非常具有实用价值,需要的朋友可以参考下。

1、Introduction

之前写过一篇文章:Mysql主从同步的原理。

相信看过这篇文章的童鞋,都摩拳擦掌,跃跃一试了吧?

今天我们就来一次mysql主从同步实战!

2、环境说明

os:ubuntu16.04

mysql:5.7.17

下面的实战演练,都是基于上面的环境。当然,其他环境也大同小异。

3、进入实战

工具

2台机器:

master IP:192.168.33.22

slave  IP:192.168.33.33

master机器上的操作

1、更改配置文件

我们找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

配置如下:

bind-address = 192.168.33.22 #your master ip
server-id = 1 #在master-slave架构中,每台机器节点都需要有唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #开启binlog

2、重启mysql,以使配置文件生效。

sudo systemctl restart mysql

3、创建主从同步的mysql user。

$ mysql -u root -p
Password:

##创建slave1用户,并指定该用户只能在主机192.168.33.33上登录。
mysql> CREATE USER 'slave1'@'192.168.33.33' IDENTIFIED BY 'slavepass';
Query OK, 0 rows affected (0.00 sec)

##为slave1赋予REPLICATION SLAVE权限。
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'192.168.33.33';
Query OK, 0 rows affected (0.00 sec)

4、为MYSQL加读锁

为了主库与从库的数据保持一致,我们先为mysql加入读锁,使其变为只读。

mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.00 sec)

5、记录下来MASTER REPLICATION LOG 的位置

该信息稍后会用到。

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |  613 |    |     |     |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6、将master DB中现有的数据信息导出

$ mysqldump -u root -p --all-databases --master-data > dbdump.sql

7、接触master DB的读锁

mysql> UNLOCK TABLES;

8、将步骤6中的dbdump.sql文件copy到slave

scp dbdump.sql ubuntu@192.168.33.33:/home/ubuntu

slave机器上的操作

1、更改配置文件

我们找到文件 /etc/mysql/mysql.conf.d/mysqld.cnf

更改配置如下:

bind-address = 192.168.33.33 #your slave ip
server-id = 2 #master-slave结构中,唯一的server-id
log_bin = /var/log/mysql/mysql-bin.log #开启binlog

2、重启mysql,以使配置文件生效

sudo systemctl restart mysql

3、导入从master DB。 导出的dbdump.sql文件,以使master-slave数据一致

$ mysql -u root -p < /home/ubuntu/dbdump.sql

4、使slave与master建立连接,从而同步

$ mysql -u root -p
Password:

mysql> STOP SLAVE;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CHANGE MASTER TO
 -> MASTER_HOST='192.168.33.22',
 -> MASTER_USER='slave1',
 -> MASTER_PASSWORD='slavepass',
 -> MASTER_LOG_FILE='mysql-bin.000001',
 -> MASTER_LOG_POS=613;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

MASTER_LOG_FILE='mysql-bin.000001'与MASTER_LOG_POS=613的值,是从上面的 SHOW MASTER STATUS 得到的。

经过如此设置之后,就可以进行master-slave同步了~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • mysql授予用户远程访问权限的实现

    mysql授予用户远程访问权限的实现

    在默认情况下,MySQL 数据库仅允许在本地主机上进行访问,如果您需要远程连接到 MySQL 数据库,您需要授予用户远程访问权限,本文就来
    2023-11-11
  • mysql5.7.13 环境搭建教程(解压缩版)

    mysql5.7.13 环境搭建教程(解压缩版)

    这篇文章主要为大家详细介绍了mysql解压缩版环境搭建教程,具有一定的实用性,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • MySQL数据库show processlist指令使用解析

    MySQL数据库show processlist指令使用解析

    这篇文章主要介绍了MySQL数据库show processlist指令使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • MySQL的commit是如何commit源码解析

    MySQL的commit是如何commit源码解析

    这篇文章主要为大家介绍了MySQL的commit是如何commit源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • MySQL 用户管理和数据库权限问题

    MySQL 用户管理和数据库权限问题

    MySQL作为世界上最流行的开源关系型数据库,在实际生产环境中,合理的用户管理和权限控制是确保数据安全的重要基石,本文将从零开始,手把手教你掌握MySQL的用户管理和权限控制,感兴趣的朋友一起看看吧
    2025-06-06
  • JDBC连接mysql8和mysql5.7的注意事项

    JDBC连接mysql8和mysql5.7的注意事项

    这篇文章主要介绍了JDBC连接mysql8和mysql5.7的注意事项,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 详解MySQL数据类型DECIMAL(N,M)中N和M分别表示的含义

    详解MySQL数据类型DECIMAL(N,M)中N和M分别表示的含义

    关于MySQL数据类型decimal中n和m分别表示什么含义?本文就此问题作了简单论述,并创建相关表进行验证,需要的朋友可以了解下。
    2017-10-10
  • SQL语法CONSTRAINT约束操作详情

    SQL语法CONSTRAINT约束操作详情

    这篇文章主要介绍了SQL语法CONSTRAINT约束操作详情,CONSTRAINT,约束,即对数据库表中的数据进行约束,以保证数据记录的完整性和有效性。下面来看看文章的学习介绍吧
    2022-01-01
  • MySQL索引知识的一些小妙招总结

    MySQL索引知识的一些小妙招总结

    这篇文章主要给大家总结介绍了关于MySQL索引知识的一些小妙招,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • MYSQL 表的全面总结

    MYSQL 表的全面总结

    这篇文章主要介绍了MYSQL表,文章主要围绕MySQL表的相关资料如创建表、删除表、修改表、等展开内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11

最新评论