Docker mysql 主從配置詳解及實(shí)例
Docker mysql 主從配置
1、首先創(chuàng)建兩個文件my-m.cnf(主庫配置) 、my-s.cnf(從庫配置)
my-m.cnf 內(nèi)容如下
# 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 = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql explicit_defaults_for_timestamp log-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 setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-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 內(nèi)容如下
# 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 = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql explicit_defaults_for_timestamp log-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 setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-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、連接主庫,并運(yùn)行以下命令,創(chuàng)建一個用戶用來同步數(shù)據(jù)
$ GRANT REPLICATION SLAVE ON *.* to 'backup'@'%' identified by '123456';
5、查看主庫狀態(tài)
$ show master status;
記住File、Position的值,如果沒查到數(shù)據(jù),請檢查第一、第二步,配置問題。
我查出來的是mysql-bin.000004、312
6、連接到從庫,運(yùn)行以下命令,設(shè)置主庫鏈接
$ 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、查看同步狀態(tài)
$ show slave status
如果看到Waiting for master send event.. 什么的就成功了,你現(xiàn)在在主庫上的修改,都會同步到從庫上
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- 使用Docker容器搭建MySql主從復(fù)制
- 使用Docker部署MySQL 5.7&8.0主從集群的方法步驟
- 詳解Docker方式實(shí)現(xiàn)MySql 主從復(fù)制(實(shí)踐篇)
- 基于Docker如何實(shí)現(xiàn)MySQL主從復(fù)制詳解
- 詳解如何利用docker快速構(gòu)建MySQL主從復(fù)制環(huán)境
- MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫的方法
- docker實(shí)現(xiàn)mysql主從復(fù)制的示例代碼
- Docker-Compose實(shí)現(xiàn)Mysql主從的示例代碼
- docker實(shí)現(xiàn)MySQL主從雙備的示例代碼
- docker-compose啟動mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn)
相關(guān)文章
Ubuntu10下如何搭建MySQL Proxy讀寫分離探討
MySQL Proxy是一個處于你的Client端和MySQL server端之間的簡單程序,它可以監(jiān)測、分析或改變它們的通信2012-11-11
詳解如何對MySQL數(shù)據(jù)庫進(jìn)行授權(quán)管理
MySQL數(shù)據(jù)授權(quán)是指數(shù)據(jù)庫管理員通過設(shè)置權(quán)限,控制用戶對數(shù)據(jù)庫中的數(shù)據(jù)的訪問和操作能力,在MySQL中,每個用戶賬戶都有特定的權(quán)限,本文給大家介紹了如何對MySQL數(shù)據(jù)庫進(jìn)行授權(quán)管理,需要的朋友可以參考下2024-11-11
mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié)
本文主要介紹了mysql初始化命令mysqld?--initialize參數(shù)說明小結(jié),文中通過圖表代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
關(guān)于mysql innodb count(*)速度慢的解決辦法
innodb引擎在統(tǒng)計(jì)方面和myisam是不同的,Myisam內(nèi)置了一個計(jì)數(shù)器,所以在使用 select count(*) from table 的時(shí)候,直接可以從計(jì)數(shù)器中取出數(shù)據(jù)。而innodb必須全表掃描一次方能得到總的數(shù)量2012-12-12

