基于mysqldump快速搭建从库
Jun 07, 2016 pm 04:07 PMmysql主从搭建总的来说大致分为3个步骤,一是为主从实例添加复制所需参数以及创建复制用的账户,二在是需要在主库建立快照,三是
mysql主从搭建总的来说大致分为3个步骤,一是为主从实例添加复制所需参数以及创建复制用的账户,二在是需要在主库建立快照,三是在从库上添加指向主库IP,端口,用户名,密码,binlog位置等。而对于主从搭建的快照方式有很多种,如使用InnoDB hotbak,xtrabackup,mysqldump以及直接使用tar方式来建立快照。本文主要介绍使用mysqldump方式来建立快照,适用于不超过20GB左右的数据库。
与本文有关的相关参考:
使用mysqldump导出数据库
MySQL 复制简要描述及示例
MySQL多实例配置
1、实例级别的主从搭建
-- 演示环境,另,本文演示基于同一主机的多实例,,主端口为3406,从端口为3506
master@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.6.12-log |
+---------------+------------+
master@localhost[(none)]> system cat /etc/issue
CentOS release 5.4 (Final)
Kernel \r on an \m
--有关参主从数配置,请参考MySQL 复制简要描述及示例
--创建用于复制的账户
master@localhost[(none)]> grant replication slave on *.* to 'repl'@'192.168.1.177' identified by 'xxx';
Query OK, 0 rows affected (0.01 sec)
--全局读锁
master@localhost[(none)]> flush tables with read lock;
Query OK, 0 rows affected (0.02 sec)
master@localhost[(none)]> system pwd
/data/inst3406
--获取master binlog位置
master@localhost[(none)]> show master status;
+--------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------------+----------+--------------+------------------+-------------------+
| inst3406bin.000001 | 2169 | | | |
+--------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
--使用mysqldump导出实例
master@localhost[(none)]> system mysqldump -uroot -pxxx -S /tmp/mysql3406.sock --routines --all-databases --opt >alldb.sql
master@localhost[(none)]> system ls
alldb.sql data3406
--解锁
master@localhost[(none)]> unlock tables;
master@localhost[(none)]> exit
--从库上面导入dump --从库上设置主库的相关信息(host,port等等) --启动slave 2、部分库从库搭建 --以下演示为仅搭建部分从库,为只同步sakila tempdb 2个库 slave@localhost[(none)]> reset slave all; --为从库添加只同步sakila tempdb 2个库,以下为修改后的结果 [mysql@app ~]$ grep skip-slave /data/inst3506/data3506/my3506.cnf --修改后重启3506以使从配置生效 [mysql@app ~]$ mysqld_safe --defaults-file=/data/inst3506/data3506/my3506.cnf & --从主库仅导出sakila tempdb --在从库端登陆执行dump文件 --查看dump期间的master binlog位置 --从库上设置主库的相关信息(host,port等等) --启动从库 -- Author : Leshami
[mysql@app inst3406]$ mysql -uroot -pxxx -S /tmp/mysql3506.sock
[mysql@app inst3506]$ mysqls
slave@localhost[(none)]> change master to
-> MASTER_HOST='192.168.1.177',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='xxx',
-> MASTER_PORT=3406,
-> MASTER_LOG_FILE='inst3406bin.000001',
-> MASTER_LOG_POS=2169;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
slave@localhost[(none)]> start slave;
--重置从库
slave@localhost[(none)]> stop slave;
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.01 sec)
[mysql@app ~]$ grep replicate /data/inst3506/data3506/my3506.cnf
replicate-do-db=test
replicate-do-db=sakila
skip-slave-start
[mysql@app ~]$ mysqladmin -uroot -pxxx -S /tmp/mysql3506.sock shutdown
[mysql@app ~]$ mysqldump -uroot -pxxx -S /tmp/mysql3406.sock --single-transaction --master-data=2 -R --database sakila tempdb>multidb.sql
[mysql@app ~]$ mysqls
slave@localhost[(none)]> source multidb.sql
slave@localhost[tempdb]> system grep -i "change master" multidb.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='inst3406bin.000001', MASTER_LOG_POS=3293117;
slave@localhost[tempdb]> change master to
-> MASTER_HOST='192.168.1.177',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='xxx',
-> MASTER_PORT=3406,
-> MASTER_LOG_FILE='inst3406bin.000001',
-> MASTER_LOG_POS=3293117;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
slave@localhost[tempdb]> start slave;
Query OK, 0 rows affected (0.01 sec)
-- Blog :
--校验结果
slave@localhost[tempdb]> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.177
Master_User: repl
Master_Port: 3406
Connect_Retry: 60
Master_Log_File: inst3406bin.000001
Read_Master_Log_Pos: 3293117
Relay_Log_File: relay-bin.000002
Relay_Log_Pos: 285
Relay_Master_Log_File: inst3406bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,sakila

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Verwenden Sie ddrescue, um Daten unter Linux wiederherzustellen

Open Source! Jenseits von ZoeDepth! DepthFM: Schnelle und genaue monokulare Tiefenschätzung!

So verwenden Sie die Excel-Filterfunktion mit mehreren Bedingungen

Google ist begeistert: JAX-Leistung übertrifft Pytorch und TensorFlow! Es könnte die schnellste Wahl für das GPU-Inferenztraining werden

Die Vitalität der Superintelligenz erwacht! Aber mit der Einführung der sich selbst aktualisierenden KI müssen sich Mütter keine Sorgen mehr über Datenengpässe machen

Langsame Internetgeschwindigkeiten für Mobilfunkdaten auf dem iPhone: Korrekturen

Der erste Roboter erscheint, der menschliche Aufgaben autonom erledigt, mit fünf flexiblen Fingern und übermenschlicher Geschwindigkeit, und große Modelle unterstützen das Training im virtuellen Raum

Die U.S. Air Force präsentiert ihren ersten KI-Kampfjet mit großem Aufsehen! Der Minister führte die Testfahrt persönlich durch, ohne in den gesamten Prozess einzugreifen, und 100.000 Codezeilen wurden 21 Mal getestet.
