1分钟利用mysqlreplicate快速搭建MySQL主从

利用mysqlreplicate快速搭建MySQL主从环境

简介

mysql-utilities工具集是一个集中了多种工具的合集,可以理解为是DBA的工具箱,本文介绍利用其中的mysqlreplicate工具来快速搭建MySQL主从环境。

HE1:192.168.1.248 slave

HE3:192.168.1.250 master

实战

Part1:安装mysql-utilities

[[email protected] ~]# tar xvf mysql-utilities-1.5.4.tar.gz

[[email protected] ~]# cd mysql-utilities-1.5.4

[[email protected] mysql-utilities-1.5.4]# python setup.py build

[[email protected] mysql-utilities-1.5.4]# python setup.py install

如何安装MySQL可参考

MySQL5.6生产库自动化安装部署

http://suifu.blog.51cto.com/9167728/1846671

1分钟完成MySQL5.7安装部署

http://suifu.blog.51cto.com/9167728/1855415

Part2:基本使用方式

[[email protected] ~]# mysqlreplicate --help
MySQL Utilities mysqlreplicate version 1.5.4 
License type: GPLv2
Usage: mysqlreplicate [email protected]:3306 [email protected]:3310 --rpl-user=rpl:passwd 
mysqlreplicate - establish replication with a master
Options:
  --version             show program‘s version number and exit
  --help                display a help message and exit
  --license             display program‘s license and exit
  --master=MASTER       connection information for master server in the form:
                        <user>[:<password>]@<host>[:<port>][:<socket>] or
                        <login-path>[:<port>][:<socket>] or <config-
                        path>[<[group]>].
  --slave=SLAVE         connection information for slave server in the form:
                        <user>[:<password>]@<host>[:<port>][:<socket>] or
                        <login-path>[:<port>][:<socket>] or <config-
                        path>[<[group]>].
  --rpl-user=RPL_USER   the user and password for the replication user
                        requirement, in the form: <user>[:<password>] or
                        <login-path>. E.g. rpl:passwd
  -p, --pedantic        fail if storage engines differ among master and slave.
  --test-db=TEST_DB     database name to use in testing replication setup
                        (optional)
  --master-log-file=MASTER_LOG_FILE
                        use this master log file to initiate the slave.
  --master-log-pos=MASTER_LOG_POS
                        use this position in the master log file to initiate
                        the slave.
  -b, --start-from-beginning
                        start replication from the first event recorded in the
                        binary logging of the master. Not valid with --master-
                        log-file or --master-log-pos.
  --ssl-ca=SSL_CA       The path to a file that contains a list of trusted SSL
                        CAs.
  --ssl-cert=SSL_CERT   The name of the SSL certificate file to use for
                        establishing a secure connection.
  --ssl-key=SSL_KEY     The name of the SSL key file to use for establishing a
                        secure connection.
  --ssl=SSL             Specifies if the server connection requires use of
                        SSL. If an encrypted connection cannot be established,
                        the connection attempt fails. By default 0 (SSL not
                        required).
  -v, --verbose         control how much information is displayed. e.g., -v =
                        verbose, -vv = more verbose, -vvv = debug
  -q, --quiet           turn off all messages for quiet execution.

Part3:主库准备

主库创建复制用户

[[email protected] ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 23329
Server version: 5.7.16-log MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> grant replication client,replication slave on *.* to ‘mysync‘@‘%‘ identified by ‘MANAGER‘;
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

Part4:键配置

从库进行配置主从执行如下命令
[[email protected] ~]# mysqlreplicate --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 --rpl-user=mysync:MANAGER -b
WARNING: Using a password on the command line interface can be insecure.
# master on 192.168.1.250: ... connected.
# slave on 192.168.1.248: ... connected.
# Checking for binary logging on master...
# Setting up replication...
# ...done.

检查

Part1:mysqlrplcheck检查

[[email protected] ~]# mysqlrplcheck --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 -s
WARNING: Using a password on the command line interface can be insecure.
# master on 192.168.1.250: ... connected.
# slave on 192.168.1.248: ... connected.
Test Description                                                     Status
---------------------------------------------------------------------------
Checking for binary logging on master                                [pass]
Are there binlog exceptions?                                         [pass]
Replication user exists?                                             [pass]
Checking server_id values                                            [pass]
Checking server_uuid values                                          [pass]
Is slave connected to master?                                        [pass]
Check master information file                                        [pass]
Checking InnoDB compatibility                                        [pass]
Checking storage engines compatibility                               [pass]
Checking lower_case_table_names settings                             [pass]
Checking slave delay (seconds behind master)                         [pass]

#
# Slave status: 
#
                Slave_IO_State : Waiting for master to send event
                   Master_Host : 192.168.1.250
                   Master_User : mysync
                   Master_Port : 3306
                 Connect_Retry : 60
               Master_Log_File : mysql-bin.000003
           Read_Master_Log_Pos : 384741
                Relay_Log_File : HE1-relay-bin.000004
                 Relay_Log_Pos : 384954
         Relay_Master_Log_File : mysql-bin.000003
              Slave_IO_Running : Yes
             Slave_SQL_Running : Yes
               Replicate_Do_DB : 
           Replicate_Ignore_DB : 
            Replicate_Do_Table : 
        Replicate_Ignore_Table : 
       Replicate_Wild_Do_Table : 
   Replicate_Wild_Ignore_Table : 
                    Last_Errno : 0
                    Last_Error : 
                  Skip_Counter : 0
           Exec_Master_Log_Pos : 384741
               Relay_Log_Space : 1743112
               Until_Condition : None
                Until_Log_File : 
                 Until_Log_Pos : 0
            Master_SSL_Allowed : No
            Master_SSL_CA_File : 
            Master_SSL_CA_Path : 
               Master_SSL_Cert : 
             Master_SSL_Cipher : 
                Master_SSL_Key : 
         Seconds_Behind_Master : 0
 Master_SSL_Verify_Server_Cert : No
                 Last_IO_Errno : 0
                 Last_IO_Error : 
                Last_SQL_Errno : 0
                Last_SQL_Error : 
   Replicate_Ignore_Server_Ids : 
              Master_Server_Id : 1250
                   Master_UUID : 1b1daad8-b501-11e6-aa21-000c29c6361d
              Master_Info_File : /data/mysql/master.info
                     SQL_Delay : 0
           SQL_Remaining_Delay : None
       Slave_SQL_Running_State : Slave has read all relay log; waiting for more updates
            Master_Retry_Count : 86400
                   Master_Bind : 
       Last_IO_Error_Timestamp : 
      Last_SQL_Error_Timestamp : 
                Master_SSL_Crl : 
            Master_SSL_Crlpath : 
            Retrieved_Gtid_Set : 
             Executed_Gtid_Set : 
                 Auto_Position : 0
          Replicate_Rewrite_DB : 
                  Channel_Name : 
            Master_TLS_Version : 
# ...done.


——总结——

可以看到利用mysql-utilities工具集中的mysqlreplicate来配置MySQL主从非常简单,mysqlreplicate也提供了各类参数,本文中的-b是指使复制从主二进制日志中的第一个事件开始。mysqlrplcheck 中的-s是指输出show slave status\G的内容。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。

时间: 2024-08-05 13:34:51

1分钟利用mysqlreplicate快速搭建MySQL主从的相关文章

怎么使用mysqlreplicate快速搭建MySQL主从呢?

用其中的mysqlreplicate工具来快速搭建MySQL主从环境. HE1:192.168.1.248 slave HE3:192.168.1.250 master 实战 Part1:安装mysql-utilities [[email protected] ~]# tar xvf mysql-utilities-1.5.4.tar.gz[[email protected] ~]# cd mysql-utilities-1.5.4[[email protected] mysql-utiliti

利用percona-xtrabackup快速搭建MySQL数据库主从复制

应用场景: Linux服务器A运行MySQL服务,并开启了log-bin(log-bin = mysql-bin)和指定了server-id(server-id = 1); Linux服务器B也以与服务器A同样的方式(不同样也可以,参考下面的"注意")安装了MySQL服务,可开启log-bin也可不开启log-bin,如果开启了log-bin则需要注意MySQL function的限制问题(可通过set global log_bin_trust_function_creators=TR

Centos快速搭建mysql主从

其实我自己第一次搭建并没有所谓的快速,还是碰到很多问题 第一步,需要安装包 官网地址 https://dev.mysql.com/downloads/mysql/ 进入这个地址后,目前因该是mysql8,我这里用的是5.7,因此点击右边查看之前版本 由于centos就是Redhat,所以选择Red Hat 眼花缭乱,有很多包,我们的目的是提供mysql服务,最终目标是把server装起来,但是由于这些包安装存在依赖关系,所以你必须要把下面框框里面的全下载并按照数字的顺序安装 当然你可以把第一个b

搭建Mysql主从同步服务

Mysql主从同步搭建 mysql主从同步利用binlog日志中记录的sql语句实现数据同步,进而实现自动备份数据的目的. 在搭建mysql主从同步时,要求一台服务器做master即主服务器,一台服务器做slave即从服务器,slave服务器从master服务器上同步binlog日志中记录的sql语句,在本地数据库中执行这些语句来实现数据库同步的目的. 注意,在搭建mysql主从同步服务时,slave上的数据库必须与master服务器上的数据库中的库和表完全相同,即有同样的库,表且表结构完全相同

Oracle Compute云快速搭建MySQL Keepalived高可用架构

最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户根据自身的技术储备想要使用Keepalived组件来配合MySQL实现.今天结合Oracle Compute刚刚宣布terraform支持的架构即代码方式,交付给客户一个快速搭建MySQL+Keepalived高可用架构,来帮助他们快速搭建测试环境甚至将来使用到正式环境. MySQL主主复制模式 M

使用XtraBackup热备份搭建MySQL主从同步

使用XtraBackup热备份搭建MySQL主从同步 1 背景描述 生产环境一台MYSQL主库,没有搭建从库,急需搭建从库 每天已有innobackupex备份 2 方案 利用innobackupex全备和增量备份搭建MYSQL主库 3 数据库版本 主库:mysql 5.5.54 从库:mysql 5.7.25(为了以后升级) 4 搭建步骤 搭建的步骤如下图所示: (1)将数据库备份拷贝到从库上 (2)在从库上安装好MYSQL数据库,安装过程略 (3)停止从库的MYSQL实例,删除从库数据库里面

搭建mysql主从服务器

搭建mysql主从服务器: //注:注释掉my.cn文件中的skip-federated字段[[email protected] ]# /bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf 配置主服务器:修改my.cnf文件server-id=1 //每个数据库服务器都要指定唯一一个server-id log-bin=mysql-bin //mysql进行主从复制时通过二进制日志文件来进行的,所以必须开启mysql日志功

利用 TFLearn 快速搭建经典深度学习模型

利用 TFLearn 快速搭建经典深度学习模型 使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<TensorFlow 增加自定义运算符>).由于运算符的粒度较小,在构建深度学习模型时,代码写出来比较冗长,比如实现卷积层:5, 9 这种方式在设计较大模型时会比较麻烦,需要程序员徒手完成各个运算符之间的连接,像一些中间变量的维度变换.运算符参数选项.多个子网络连接处极易发生问题,肉眼检查也很难发现代码中潜伏的 bu

linux下搭建mysql主从

在master上创建repl账户,用于复制. grant replication slave on *.* to 'repl'@'%' identified by '[email protected]$$W0rd'; flush privileges; 与windows下搭建mysql主从的区别: 二进制日志的路径格式不一样 master: my.cnf部分配置(master): thread_handling = pool-of-threads thread_pool_oversubscrib