<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=MySQL_replication</id>
	<title>MySQL replication - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.riguz.com/index.php?action=history&amp;feed=atom&amp;title=MySQL_replication"/>
	<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=MySQL_replication&amp;action=history"/>
	<updated>2026-06-02T22:43:18Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=3764&amp;oldid=prev</id>
		<title>Riguz：​Riguz移动页面Blog:MySQL replication至MySQL replication，不留重定向</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=3764&amp;oldid=prev"/>
		<updated>2023-12-19T05:51:45Z</updated>

		<summary type="html">&lt;p&gt;Riguz移动页面&lt;a href=&quot;/index.php?title=Blog:MySQL_replication&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Blog:MySQL replication（页面不存在）&quot;&gt;Blog:MySQL replication&lt;/a&gt;至&lt;a href=&quot;/MySQL_replication&quot; title=&quot;MySQL replication&quot;&gt;MySQL replication&lt;/a&gt;，不留重定向&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2023年12月19日 (二) 05:51的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh-Hans-CN&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=2493&amp;oldid=prev</id>
		<title>2021年5月3日 (一) 13:42 Riguz</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=2493&amp;oldid=prev"/>
		<updated>2021-05-03T13:42:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2021年5月3日 (一) 13:42的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l141&quot;&gt;第141行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第141行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Last_Error: Error &amp;#039;Duplicate entry &amp;#039;2&amp;#039; for key &amp;#039;PRIMARY&amp;#039;&amp;#039; on query. Default database: &amp;#039;foo&amp;#039;. Query: &amp;#039;INSERT INTO `foo`.`bar` (`id`, `remark`) VALUES (&amp;#039;2&amp;#039;, &amp;#039;existing&amp;#039;)&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Last_Error: Error &amp;#039;Duplicate entry &amp;#039;2&amp;#039; for key &amp;#039;PRIMARY&amp;#039;&amp;#039; on query. Default database: &amp;#039;foo&amp;#039;. Query: &amp;#039;INSERT INTO `foo`.`bar` (`id`, `remark`) VALUES (&amp;#039;2&amp;#039;, &amp;#039;existing&amp;#039;)&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Database]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Riguz</name></author>
	</entry>
	<entry>
		<id>https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=2492&amp;oldid=prev</id>
		<title>imported&gt;Riguz：​MySQL设置Replication后，可以支持Master库上的修改自动同步到Slave库上。利用Docker可以在本机尝试这种特性。</title>
		<link rel="alternate" type="text/html" href="https://wiki.riguz.com/index.php?title=MySQL_replication&amp;diff=2492&amp;oldid=prev"/>
		<updated>2019-01-21T00:00:00Z</updated>

		<summary type="html">&lt;p&gt;MySQL设置Replication后，可以支持Master库上的修改自动同步到Slave库上。利用Docker可以在本机尝试这种特性。&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;MySQL设置Replication后，可以支持Master库上的修改自动同步到Slave库上。利用Docker可以在本机尝试这种特性。&lt;br /&gt;
&lt;br /&gt;
= 配置Master=&lt;br /&gt;
首先需要创建几个文件夹（略），用来挂载配置文件和数据。我们首先来配置Master库：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
# master/cnf/my.cnf&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=1&lt;br /&gt;
log-bin=/var/lib/mysql/mysql-bin.log&lt;br /&gt;
binlog_format=MIXED&lt;br /&gt;
expire_logs_days=7&lt;br /&gt;
max_binlog_size=50m&lt;br /&gt;
max_binlog_cache_size=256m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
启动Master：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name mysql_master \&lt;br /&gt;
    --mount type=bind,src=/Users/hfli/mysql-replication/master/cnf/my.cnf,dst=/etc/my.cnf \&lt;br /&gt;
    --mount type=bind,src=/Users/hfli/mysql-replication/master/data/,dst=/var/lib/mysql \&lt;br /&gt;
    -e MYSQL_ROOT_PASSWORD=1125482715 \&lt;br /&gt;
    -d mysql:5.7.24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
然后需要登录到MySQL创建一个用来复制的用户&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;mysql&amp;quot;&amp;gt;&lt;br /&gt;
create user &amp;#039;replication&amp;#039; identified by &amp;#039;1153687060&amp;#039;;&lt;br /&gt;
grant replication slave on *.* to &amp;#039;replication&amp;#039;@&amp;#039;%&amp;#039; identified by &amp;#039;1153687060&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
接下来需要看一下Master库的状态:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show master status;&lt;br /&gt;
+------------------+----------+--------------+------------------+-------------------+&lt;br /&gt;
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |&lt;br /&gt;
+------------------+----------+--------------+------------------+-------------------+&lt;br /&gt;
| mysql-bin.000003 |      696 |              |                  |                   |&lt;br /&gt;
+------------------+----------+--------------+------------------+-------------------+&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 从库配置=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
# slave1/cnf/my.cnf&lt;br /&gt;
[mysqld]&lt;br /&gt;
&lt;br /&gt;
server-id=2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
启动docker：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
docker run --name mysql_slave1 \&lt;br /&gt;
    --mount type=bind,src=/Users/hfli/mysql-replication/slave1/cnf/my.cnf,dst=/etc/my.cnf \&lt;br /&gt;
    --mount type=bind,src=/Users/hfli/mysql-replication/slave1/data/,dst=/var/lib/mysql \&lt;br /&gt;
    --link mysql_master \&lt;br /&gt;
    -e MYSQL_ROOT_PASSWORD=1125482715 \&lt;br /&gt;
    -d mysql:5.7.24&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
然后即可启动Replication:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; change master to master_host=&amp;#039;mysql_master&amp;#039;,master_user=&amp;#039;replication&amp;#039;,master_password=&amp;#039;1153687060&amp;#039;,master_log_file=&amp;#039;mysql-bin.000003&amp;#039;,master_log_pos=696;&lt;br /&gt;
Query OK, 0 rows affected, 2 warnings (0.03 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; start slave;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; show slave status\G;&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                  Master_Host: mysql_master&lt;br /&gt;
                  Master_User: replication&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000003&lt;br /&gt;
          Read_Master_Log_Pos: 696&lt;br /&gt;
               Relay_Log_File: c17b953fb671-relay-bin.000002&lt;br /&gt;
                Relay_Log_Pos: 320&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000003&lt;br /&gt;
             Slave_IO_Running: Yes&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB:&lt;br /&gt;
          Replicate_Ignore_DB:&lt;br /&gt;
           Replicate_Do_Table:&lt;br /&gt;
       Replicate_Ignore_Table:&lt;br /&gt;
      Replicate_Wild_Do_Table:&lt;br /&gt;
  Replicate_Wild_Ignore_Table:&lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error:&lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 696&lt;br /&gt;
              Relay_Log_Space: 534&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File:&lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File:&lt;br /&gt;
           Master_SSL_CA_Path:&lt;br /&gt;
              Master_SSL_Cert:&lt;br /&gt;
            Master_SSL_Cipher:&lt;br /&gt;
               Master_SSL_Key:&lt;br /&gt;
        Seconds_Behind_Master: 0&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 0&lt;br /&gt;
                Last_IO_Error:&lt;br /&gt;
               Last_SQL_Errno: 0&lt;br /&gt;
               Last_SQL_Error:&lt;br /&gt;
  Replicate_Ignore_Server_Ids:&lt;br /&gt;
             Master_Server_Id: 1&lt;br /&gt;
                  Master_UUID: 83a0a667-1d50-11e9-b754-0242ac110002&lt;br /&gt;
             Master_Info_File: /var/lib/mysql/master.info&lt;br /&gt;
                    SQL_Delay: 0&lt;br /&gt;
          SQL_Remaining_Delay: NULL&lt;br /&gt;
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates&lt;br /&gt;
           Master_Retry_Count: 86400&lt;br /&gt;
                  Master_Bind:&lt;br /&gt;
      Last_IO_Error_Timestamp:&lt;br /&gt;
     Last_SQL_Error_Timestamp:&lt;br /&gt;
               Master_SSL_Crl:&lt;br /&gt;
           Master_SSL_Crlpath:&lt;br /&gt;
           Retrieved_Gtid_Set:&lt;br /&gt;
            Executed_Gtid_Set:&lt;br /&gt;
                Auto_Position: 0&lt;br /&gt;
         Replicate_Rewrite_DB:&lt;br /&gt;
                 Channel_Name:&lt;br /&gt;
           Master_TLS_Version:&lt;br /&gt;
1 row in set (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
一个有趣的问题：如果我修改了从库，会产生什么影响？例如已经有重复的数据，那么同步的时候就会报错，我们通过Last_Error可以看到错误。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Last_Errno: 1062&lt;br /&gt;
 Last_Error: Error &amp;#039;Duplicate entry &amp;#039;2&amp;#039; for key &amp;#039;PRIMARY&amp;#039;&amp;#039; on query. Default database: &amp;#039;foo&amp;#039;. Query: &amp;#039;INSERT INTO `foo`.`bar` (`id`, `remark`) VALUES (&amp;#039;2&amp;#039;, &amp;#039;existing&amp;#039;)&amp;#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Riguz</name></author>
	</entry>
</feed>