{"id":1079,"date":"2023-03-12T11:01:12","date_gmt":"2023-03-12T03:01:12","guid":{"rendered":"https:\/\/www.appblog.cn\/?p=1079"},"modified":"2023-04-29T11:42:10","modified_gmt":"2023-04-29T03:42:10","slug":"mysql-implement-master-slave-replication-function","status":"publish","type":"post","link":"https:\/\/www.appblog.cn\/index.php\/2023\/03\/12\/mysql-implement-master-slave-replication-function\/","title":{"rendered":"MySQL\u5b9e\u73b0\u4e3b\u4ece\u590d\u5236\u529f\u80fd"},"content":{"rendered":"<p>MySQL\u5185\u5efa\u7684\u590d\u5236\u529f\u80fd\u662f\u6784\u5efa\u5927\u578b\uff0c\u9ad8\u6027\u80fd\u5e94\u7528\u7a0b\u5e8f\u7684\u57fa\u7840\u3002\u5c06MySQL\u7684\u6570\u636e\u5206\u5e03\u5230\u591a\u4e2a\u7cfb\u7edf\u4e0a\u53bb\uff0c\u8fd9\u79cd\u5206\u5e03\u7684\u673a\u5236\uff0c\u662f\u901a\u8fc7\u5c06Mysql\u7684\u67d0\u4e00\u53f0\u4e3b\u673a\u7684\u6570\u636e\u590d\u5236\u5230\u5176\u5b83\u4e3b\u673a\uff08Slave\uff09\u4e0a\uff0c\u5e76\u91cd\u65b0\u6267\u884c\u4e00\u904d\u6765\u5b9e\u73b0\u7684\u3002\u590d\u5236\u8fc7\u7a0b\u4e2d\u4e00\u4e2a\u670d\u52a1\u5668\u5145\u5f53\u4e3b\u670d\u52a1\u5668\uff0c\u800c\u4e00\u4e2a\u6216\u591a\u4e2a\u5176\u5b83\u670d\u52a1\u5668\u5145\u5f53\u4ece\u670d\u52a1\u5668\u3002\u4e3b\u670d\u52a1\u5668\u5c06\u66f4\u65b0\u5199\u5165\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6\uff0c\u5e76\u7ef4\u62a4\u6587\u4ef6\u7684\u4e00\u4e2a\u7d22\u5f15\u4ee5\u8ddf\u8e2a\u65e5\u5fd7\u5faa\u73af\u3002\u8fd9\u4e9b\u65e5\u5fd7\u53ef\u4ee5\u8bb0\u5f55\u53d1\u9001\u5230\u4ece\u670d\u52a1\u5668\u7684\u66f4\u65b0\u3002\u5f53\u4e00\u4e2a\u4ece\u670d\u52a1\u5668\u8fde\u63a5\u4e3b\u670d\u52a1\u5668\u65f6\uff0c\u5b83\u901a\u77e5\u4e3b\u670d\u52a1\u5668\u4ece\u670d\u52a1\u5668\u5728\u65e5\u5fd7\u4e2d\u8bfb\u53d6\u7684\u6700\u540e\u4e00\u6b21\u6210\u529f\u66f4\u65b0\u7684\u4f4d\u7f6e\u3002\u4ece\u670d\u52a1\u5668\u63a5\u6536\u4ece\u90a3\u65f6\u8d77\u53d1\u751f\u7684\u4efb\u4f55\u66f4\u65b0\uff0c\u7136\u540e\u5c01\u9501\u5e76\u7b49\u5f85\u4e3b\u670d\u52a1\u5668\u901a\u77e5\u65b0\u7684\u66f4\u65b0\u3002<\/p>\n<p><!-- more --><\/p>\n<p>\u8bf7\u6ce8\u610f\u5f53\u8fdb\u884c\u590d\u5236\u65f6\uff0c\u6240\u6709\u5bf9\u590d\u5236\u4e2d\u7684\u8868\u7684\u66f4\u65b0\u5fc5\u987b\u5728\u4e3b\u670d\u52a1\u5668\u4e0a\u8fdb\u884c\u3002\u5426\u5219\uff0c\u4f60\u5fc5\u987b\u8981\u5c0f\u5fc3\uff0c\u4ee5\u907f\u514d\u7528\u6237\u5bf9\u4e3b\u670d\u52a1\u5668\u4e0a\u7684\u8868\u8fdb\u884c\u7684\u66f4\u65b0\u4e0e\u5bf9\u4ece\u670d\u52a1\u5668\u4e0a\u7684\u8868\u6240\u8fdb\u884c\u7684\u66f4\u65b0\u4e4b\u95f4\u7684\u51b2\u7a81\u3002<\/p>\n<h2>\u4e3b\u4ece\u590d\u5236\u5b9e\u73b0<\/h2>\n<h3>\u4fee\u6539\u4e3b(master)\u670d\u52a1\u5668<\/h3>\n<p>\u5728<code>my.cnf<\/code>\u914d\u7f6e\u6587\u4ef6\u4e0b\u6dfb\u52a0\u5982\u4e0b\u914d\u7f6e<\/p>\n<pre><code>server_id=1 #\u6307\u5b9aMySQL\u7684id\nlog-bin=mysql-bin #\u5f00\u542f\u4e8c\u8fdb\u5236\u65e5\u5fd7\u6587\u4ef6<\/code><\/pre>\n<h3>\u521b\u5efa\u590d\u5236\u8d26\u53f7<\/h3>\n<p>\u5728\u4e3b\u670d\u52a1\u5668\u4e2d\u6267\u884c\u8be5\u547d\u4ee4(\u8fd9\u91cc\u5141\u8bb8\u4e86\u6240\u6709\u7684\u5730\u5740\u8bbf\u95ee\uff0c\u5efa\u8bae\u8bbe\u7f6e\u6210\u4ece\u670d\u52a1\u5668\u7684\u5730\u5740)<\/p>\n<pre><code class=\"language-sql\">GRANT REPLICATION SLAVE ON *.* to &#039;replication&#039;@&#039;%&#039; identified by &#039;Abc123...&#039;;<\/code><\/pre>\n<h3>\u4fee\u6539\u4ece(slave)\u670d\u52a1\u5668<\/h3>\n<pre><code>server_id=2\nlog-bin=mysql-bin\nbinlog_do_db=db_test #\u8868\u793a\u8981\u540c\u6b65\u7684\u6570\u636e\u5e93<\/code><\/pre>\n<p>\u8bf4\u660e\uff1a<\/p>\n<ul>\n<li><code>binlog-ignore-db=test<\/code> #\u8868\u793a\u4e0d\u540c\u6b65 test \u6570\u636e\u5e93<\/li>\n<li><code>binlog_do_db=db_test<\/code> #\u8868\u793a\u8981\u540c\u6b65\u7684\u6570\u636e\u5e93<\/li>\n<\/ul>\n<h3>\u91cd\u542fMySQL<\/h3>\n<p>\u4e3b\u670d\u52a1\u5668\u548c\u4ece\u670d\u52a1\u5668\u90fd\u91cd\u542f<\/p>\n<pre><code>systemctl restart mysqld<\/code><\/pre>\n<h3>\u67e5\u770b\u4e3b\u670d\u52a1\u5668\u72b6\u6001<\/h3>\n<pre><code class=\"language-sql\">show master status<\/code><\/pre>\n<p>\u7ed3\u679c\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-sql\">mysql&gt; show master status;\n+------------------+-----------+--------------+------------------+-------------------+\n| File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |\n+------------------+-----------+--------------+------------------+-------------------+\n| mysql-bin.000001 |       188 |              |                  |                   |\n+------------------+-----------+--------------+------------------+-------------------+\n1 row in set (0.01 sec)<\/code><\/pre>\n<p>\u8fd9\u91cc\u6709\u4e9b\u4fe1\u606f\u9700\u8981\u8bb0\u5f55\u4e0b\u6765\uff0c\u5728\u914d\u7f6e\u4ece\u670d\u52a1\u5668\u65f6\u5019\u9700\u8981\u7528\u5230<\/p>\n<h3>\u914d\u7f6e\u4ece\u670d\u52a1\u5668(\u8fde\u63a5 Master \u670d\u52a1\u5668)<\/h3>\n<pre><code class=\"language-sql\">change master to master_host=&#039;192.168.74.129&#039;,master_user=&#039;replication&#039;,master_password=&#039;Abc123...&#039;,master_log_file=&#039;mysql-bin.000001&#039;,master_log_pos=2041;<\/code><\/pre>\n<ul>\n<li><code>master_host<\/code>\uff1a\u662f\u4e3b\u670d\u52a1\u5668\u7684ip<\/li>\n<li><code>master_port=3306<\/code>\uff1a\u8fd9\u91cc\u6ca1\u6709\u914d\u7f6e\uff0c\u9ed8\u8ba43306<\/li>\n<li><code>master_user<\/code>\uff1aMaster \u670d\u52a1\u5668\u6388\u6743\u7528\u6237\uff0c\u4e5f\u5c31\u662f Master \u524d\u9762\u521b\u5efa\u7684\u90a3\u4e2a\u7528\u6237<\/li>\n<li><code>master_password<\/code>\uff1aMaster \u670d\u52a1\u5668\u6388\u6743\u7528\u6237\u5bf9\u5e94\u7684\u5bc6\u7801<\/li>\n<li><code>master_log_file<\/code>\uff1aMaster binlog \u6587\u4ef6\u540d<\/li>\n<li><code>master_log_pos<\/code>\uff1aMaster binlog \u6587\u4ef6\u4e2d\u7684 Postion \u503c<\/li>\n<\/ul>\n<p>\u5173\u4e8eposition\u503c\uff0c\u8fd9\u91cc\u505a\u4e00\u4e2a\u8bf4\u660e\uff1a\u5982\u679c\u4e3b\u670d\u52a1\u5668\u5df2\u7ecf\u662f\u6709\u5f88\u591a\u6570\u636e\u4e86\u7684\uff0c\u90a3\u5c31\u5148\u9700\u8981\u5907\u4efd\u4e3b\u670d\u52a1\u5668\u7684\u6570\u636e\u5230\u4ece\u670d\u52a1\u5668\u4e2d\uff0c\u7136\u540e\u518d\u4f7f\u7528\u547d\u4ee4<code>show master status<\/code>\u8bb0\u5f55\u9700\u8981\u5f00\u59cb\u540c\u6b65\u7684\u4f4d\u7f6e\u3002<\/p>\n<h3>\u5f00\u59cb\u590d\u5236<\/h3>\n<p>\u5728\u4ece\u670d\u52a1\u5668\u4e2d\u6267\u884c<\/p>\n<pre><code class=\"language-sql\">start slave;<\/code><\/pre>\n<p>\u505c\u6b62\u7684\u547d\u4ee4\u662f\uff1a<code>stop slave<\/code><\/p>\n<h3>\u67e5\u770b\u4ece\u670d\u52a1\u5668\u72b6\u6001<\/h3>\n<pre><code class=\"language-sql\">show slave status\\G;<\/code><\/pre>\n<pre><code>Slave_IO_Running: Yes\nSlave_SQL_Running: Yes<\/code><\/pre>\n<p>\u8868\u793a\u4e3b\u4ece\u590d\u5236\u914d\u7f6e\u6210\u529f\u3002\u5982\u679c\u914d\u7f6e\u5931\u8d25\uff0c\u53ef\u4ee5\u53bbMySQL\u7684\u65e5\u5fd7\u6587\u4ef6\u4e2d\u67e5\u770b\u5931\u8d25\u4fe1\u606f\uff0c\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e0a\u8ff0\u547d\u4ee4\u67e5\u770b\u4e00\u4e2a\u7b80\u8981\u7684\u9519\u8bef\u4fe1\u606f\uff1a<\/p>\n<pre><code>Last_IO_Error: Fatal error: The slave I\/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.<\/code><\/pre>\n<p>\u4e3b\u8981\u539f\u56e0\u662fMySQL\u670d\u52a1\u5668\u7684Server\u7684UUID\u51b2\u7a81\uff0c\u539f\u56e0\u662f\u4ece\u670d\u52a1\u5668\u662f\u4ece\u4e3b\u670d\u52a1\u5668\u4e0a\u590d\u5236\u8fc7\u53bb\u7684\u3002\u5230<code>\/var\/lib\/mysql\/my.cnf<\/code>\u4e0a\u4fee\u6539\u5373\u53ef\u3002<\/p>\n<h2>\u9a8c\u8bc1\u4e3b\u4ece\u7ed3\u679c<\/h2>\n<p>\u5728\u4e3b\u5e93\u65b0\u5efa\u4e00\u4e2a\u8868\uff0c\u770b\u770b\u4ece\u5e93\u662f\u5426\u53ef\u4ee5\u540c\u6b65\u8fc7\u53bb<\/p>\n","protected":false},"excerpt":{"rendered":"<p>MySQL\u5185\u5efa\u7684\u590d\u5236\u529f\u80fd\u662f\u6784\u5efa\u5927\u578b\uff0c\u9ad8\u6027\u80fd\u5e94\u7528\u7a0b\u5e8f\u7684\u57fa\u7840\u3002\u5c06MySQL\u7684\u6570\u636e\u5206\u5e03\u5230\u591a\u4e2a\u7cfb\u7edf\u4e0a\u53bb\uff0c\u8fd9\u79cd\u5206\u5e03\u7684\u673a\u5236 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-1079","post","type-post","status-publish","format-standard","hentry","category-mysql"],"_links":{"self":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/comments?post=1079"}],"version-history":[{"count":0,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/posts\/1079\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/media?parent=1079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/categories?post=1079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appblog.cn\/index.php\/wp-json\/wp\/v2\/tags?post=1079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}