Docker mysql 主從配置詳解及執行個體_Mysql

來源:互聯網
上載者:User

Docker mysql 主從配置

1、首先建立兩個檔案my-m.cnf(主庫配置) 、my-s.cnf(從庫配置)

my-m.cnf 內容如下

# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; version 2 of the License.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA## The MySQL Community Server configuration file.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html[client]port    = 3306socket   = /var/run/mysqld/mysqld.sock[mysqld_safe]pid-file  = /var/run/mysqld/mysqld.pidsocket   = /var/run/mysqld/mysqld.socknice    = 0[mysqld]user    = mysqlpid-file  = /var/run/mysqld/mysqld.pidsocket   = /var/run/mysqld/mysqld.sockport    = 3306basedir   = /usrdatadir   = /var/lib/mysqltmpdir   = /tmplc-messages-dir = /usr/share/mysqlexplicit_defaults_for_timestamplog-bin = mysql-bin server-id = 1 # Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.#bind-address  = 127.0.0.1#log-error = /var/log/mysql/error.log# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# * IMPORTANT: Additional settings that can override those from this file!#  The files must end with '.cnf', otherwise they'll be ignored.#!includedir /etc/mysql/conf.d/

主要是這兩行,只需要在原來的配置裡面加上就行

log-bin = mysql-bin
server-id = 1

my-s.cnf 內容如下

# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; version 2 of the License.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA## The MySQL Community Server configuration file.## For explanations see# http://dev.mysql.com/doc/mysql/en/server-system-variables.html[client]port    = 3306socket   = /var/run/mysqld/mysqld.sock[mysqld_safe]pid-file  = /var/run/mysqld/mysqld.pidsocket   = /var/run/mysqld/mysqld.socknice    = 0[mysqld]user    = mysqlpid-file  = /var/run/mysqld/mysqld.pidsocket   = /var/run/mysqld/mysqld.sockport    = 3306basedir   = /usrdatadir   = /var/lib/mysqltmpdir   = /tmplc-messages-dir = /usr/share/mysqlexplicit_defaults_for_timestamplog-bin = mysql-bin server-id = 2# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.#bind-address  = 127.0.0.1#log-error = /var/log/mysql/error.log# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# * IMPORTANT: Additional settings that can override those from this file!#  The files must end with '.cnf', otherwise they'll be ignored.#!includedir /etc/mysql/conf.d/

同樣,主要的是這兩行

log-bin = mysql-bin
server-id = 2

2、OK,有了設定檔,就可以啟動MySQL了,先啟動主庫

$ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql-master -v /soft/my-m.cnf:/etc/mysql/my.cnf -p 3307:3306 mysql

3、啟動從庫

$ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql-slave -v /soft/my-s.cnf:/etc/mysql/my.cnf -p 3308:3306 mysql

4、串連主庫,並運行以下命令,建立一個使用者用來同步資料

$ GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';

5、查看主庫狀態

$ show master status;

記住File、Position的值,如果沒查到資料,請檢查第一、第二步,配置問題。
我查出來的是mysql-bin.000004、312

6、串連到從庫,運行以下命令,設定主庫連結

$ change master to master_host='121.32.32.54',master_user='backup',master_password='123456',
master_log_file='mysql-bin.000004',master_log_pos=312,master_port=3307;

7、啟動同步

$ start slave;

8、查看同步狀態

$ show slave status

如果看到Waiting for master send event.. 什麼的就成功了,你現在在主庫上的修改,都會同步到從庫上

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.