Inhaltsverzeichnis
、主库开启bin-log功能,配置server-id" >1、主库开启bin-log功能,配置server-id
、从库开启bin-log功能,配置server-id" >7、从库开启bin-log功能,配置server-id
Heim Datenbank MySQL-Tutorial Mysql主主同步详细操作过程

Mysql主主同步详细操作过程

Jun 07, 2016 pm 02:53 PM
mysql 公司 同步 操作 详细 过程

此处是在公司线上部署mysql双主时所记录的文档,为安全,IP都改为内网IP。 版本信息: # mysql -V mysql Ver 14.14 Distrib 5.5.37, fordebian-linux-gnu (x86_64) using readline 6.2 1 、主库开启 bin-log 功能,配置 server-id 修改my.cf配置文件,开启bi

 

此处是在公司线上部署mysql双主时所记录的文档,为安全,IP都改为内网IP。

版本信息:

#mysql -V

mysql  Ver 14.14 Distrib 5.5.37, fordebian-linux-gnu (x86_64) using readline 6.2

 

1、主库开启bin-log功能,配置server-id

修改my.cf配置文件,开启bin-log功能,配置server-id。

#cat /etc/mysql/my.cnf

[myqld]

server-id               = 1

log_bin                 =/var/log/mysql/

slave-net-timeout       = 60   

#salve-net-timeout默认是3600秒,缩短时间是为了防止双YES的假象

#(事实上我已遇到,参考地址:http://www.cnblogs.com/billyxp/p/3470376.html


如果要指定同步或不同步哪些库,可使用如下参数

#binlog-do-db=osyunweidb   #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
#binlog-ignore-db=mysql    #不同步mysql系统数据库

 

2、确认bin-logserver-id是否开启:

查看命令 show variables like 'log_bin'; show variables like 'server_id';

mysql> show variables like 'log_bin';

+---------------+-------+

|Variable_name | Value |

+---------------+-------+

|log_bin       | ON   |

+---------------+-------+

1 rowin set (0.00 sec)

mysql>show variables like 'server_id';

+---------------+-------+

|Variable_name | Value |

+---------------+-------+

|server_id     | 1     |

+---------------+-------+

1 rowin set (0.00 sec)

 

3、创建复制授权用户

mysql> grant replication slave on *.* to replication@'%'identified by '123456'; #授权该用户对所有表都能进行复制

mysql>flush privileges;  #刷新权限

 

4、锁表,记录log-bin文件名和位置

mysql>flush tables with read lock;     #锁定所有表,此时数据库不能写入数据

QueryOK, 0 rows affected (0.05 sec)

 

mysql>show master status;      #查看最新bin-log文件及位置

+------------------------+------------+-------------------+-------------------------+

|File                   | Position   | Binlog_Do_DB      | Binlog_Ignore_DB        |

+------------------------+------------+-------------------+-------------------------+

|mysql-bin.000001       |  26314    |                   |                        |

+------------------------+------------+-------------------+-------------------------+

1row in set (0.00 sec)

 

5、锁表状态全备mysql数据

由于退出当前mysql登陆窗口,锁表功能就失效,需克隆一个会话进行全备。

#mysqldump-uroot -p -A -B >/tmp/mysql_bak_2014_10_30.sql.gz

 

看下备份数据大小,确认备份成功。

#ls  -l /tmp/mysql_bak_2014_10_30.sql.gz

-rw-r--r--1 root root 339222 10月 3011:01 /tmp/mysql_bak_2014_10_30.sql.gz

 

6、解除锁表

mysql>unlock tables;

或直接quit退出即可。

 

7、从库开启bin-log功能,配置server-id

从库开启bin-log功能后,待会在主上在配置同步,互为主从就完成了。

#cat /etc/mysql/my.cnf

[myqld]

server-id               = 2

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

slave-net-timeout       = 60   

#salve-net-timeout默认是3600秒,缩短时间是为了防止双YES的假象

#(参考地址:http://www.cnblogs.com/billyxp/p/3470376.html


#/etc/init.d/mysqlrestart

 

8、确认从库bin-logserver-id是否开启

查看命令 show variables like 'log_bin'; show variables like 'server_id';

mysql>show variables like 'log_bin';

+---------------+-------+

|Variable_name | Value |

+---------------+-------+

|log_bin       | ON    |

+---------------+-------+

1row in set (0.00 sec)

mysql>show variables like 'server_id';

+---------------+-------+

|Variable_name | Value |

+---------------+-------+

|server_id     | 2     |

+---------------+-------+

1row in set (0.00 sec)

 

9、从库导入主库的全备数据

在从库上解压数据。

#gzip-d mysql_bak_2014_10_30.sql.gz

登陆mysql导入数据

mysql>source /root/mysql_bak_2014_10_30.sql

 

10、记录从库bin-log信息

因为在从库导入全备数据时,此时主库与从库的内容是一致的,但是bin-log位置不一定一致。

mysql>show master status;      #查看最新bin-log文件及位置

+------------------------+------------+-------------------+-------------------------+

|File                   |Position   | Binlog_Do_DB      | Binlog_Ignore_DB        |

+------------------------+------------+-------------------+-------------------------+

|mysql-bin.000003       |  2328055   |                   |                        |

+------------------------+------------+-------------------+-------------------------+

1row in set (0.00 sec)

 

11、从库设置同步主库

此处binlog文件与位置状态,是主库在步骤4锁表时show master status查看的位置状态。

 

CHANGE MASTER TO 

MASTER_HOST='10.0.0.2',

MASTER_PORT=8306,

MASTER_USER='replication',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=26314;

 

12、开启从库同步并确认同步是否成功

使用start slave开启同步功能,使用show slave status\G查看同步是否成功

mysql>start slave;

QueryOK, 0 rows affected (0.00 sec)

mysql>show slave status\G   #\G不按表格输出

***************************1. row ***************************

               Slave_IO_State: Waiting formaster to send event

                  Master_Host: 10.0.0.2

                  Master_User: replication

                  Master_Port: 8306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000001

          Read_Master_Log_Pos: 136270

               Relay_Log_File:mysqld-relay-bin.000002

                Relay_Log_Pos: 72697

        Relay_Master_Log_File: mysql-bin.000001

             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: 98758

              Relay_Log_Space: 110366

              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: 622   #查看主从同步延迟,延迟大则可能需要优化

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: 1

1row in set (0.00 sec)

 

#sql线程与IO线程都是YESslave配置成功。

 

13、主库设置同步从库

由于从库是全备导入,原先在主库上配置的复制帐户也同样导入,所以这里不用在从库上新授权复制用户。

从库上的binlog文件与位置状态,是从库在刚导入时show master status查看到的位置状态。

 

CHANGEMASTER TO 

MASTER_HOST='172.16.0.2',

MASTER_PORT=3306,

MASTER_USER='replication',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000003',

MASTER_LOG_POS=2328055;

#修改相应信息,直接把这些配置在mysql中粘贴即可。

 

 

14、开启同步并确认同步是否成功

使用start slave开启同步功能,使用show slave status\G查看同步是否成功

mysql>start slave;

QueryOK, 0 rows affected (0.00 sec)

 

mysql>show slave status\G

***************************1. row ***************************

               Slave_IO_State: Waiting formaster to send event

                  Master_Host: 172.16.0.2

                  Master_User: replication

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000007

          Read_Master_Log_Pos: 107

               Relay_Log_File:mysqld-relay-bin.000006

                Relay_Log_Pos: 253

        Relay_Master_Log_File: mysql-bin.000007

             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: 107

              Relay_Log_Space: 556

              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: 2

1row in set (0.00 sec)

 

#IO线程与sql线程都是正常。

 

15、互为主从测试

在两台mysql各创建一个库,看两边是否都能进行同步。

分别在主库上执行 create database test01;

从库上执行create database test02;

看两台数据库上执行show databases;,看是否都有test01表和test02表。

我的经过测试,双主测试成功。

 

 


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

CentOS installieren MySQL CentOS installieren MySQL Apr 14, 2025 pm 08:09 PM

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

See all articles