mysql主從複製(單向同步)
0、環境
系統:ubuntu14.04(阿里雲\騰訊雲)
資料庫:mysql5.6
主:阿里雲ubuntu
從:騰訊雲ubuntu
預設需要同步的資料庫已經事先建立。
1、原理
我們設定一個主庫(Master),和一個從庫(Slave或Secondary)。從庫從主庫複製資料內容,目的為災難備份、讀寫分離等。
主庫開啟binary log,開啟後每一次操作更新、修改、刪除等都會記錄在案,所以從庫的同步過程其實就是獲得這些過程,然後將現場還原,就達到了資料同步的目的。
2、開啟mysql遠端連線
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
PS:使用mysql的root使用者和遠端是很危險的,而且最後WITH GRANT OPTION還能授權,這裡只是示範。最安全肯定是ssh登入再去訪問資料庫,又或者新建一個mysql使用者專門用於同步。
上面的語句完成後,就可以用:
使用者名稱為:root
密碼為:123456(這個設定的密碼不是原來ssh登入進去的密碼,當然你也可以設定成一樣的吧)
shell> mysql -u root -h xx.xx.xx.xx -p
shell> 123456
檢視使用者是否可以通過網路訪問
[email protected]:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 101
Server version: 5.6.33-0ubuntu0.14.04.1-log (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user , host from user;
+------------------+-------------------------+
| user | host |
+------------------+-------------------------+
| root | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | izwz96uh8912ewgq9yv5nxz |
| debian-sys-maint | localhost |
| root | localhost |
+------------------+-------------------------+
6 rows in set (0.01 sec)
mysql>
mysql -u root -p
use mysql
select user , host from user;
看到有個%號說明那個使用者可以任意host遠端直接登入mysql了。
最後還有一個要注意的地方,將/etc/mysql/my.conf的配置檔案的bind-address行註釋掉,又或者改成bind-address = 0.0.0.0
3、配置主伺服器
cd /etc/mysql
cp my.cnf mycnf.bak
nano my.cnf
修改配置檔案:
server-id = 1(服務id,這個需要每個不同)
log_bin = /var/log/mysql/mysql-bin.log(這是主伺服器,必須開啟log_bin,這句就是開啟了)
binlog_format =mixed(混合比較好)
binlog_do_db = master(需要同步的資料庫,如果多個數據庫,重複這個配置)
binlog_ignore_db = mysql(排除不需要同步的資料庫,如果多個數據庫,重複這個配置)
都是有預設的,去除前面的#號就行了,binlog_format=mixed這句是沒有的,自己加。
重啟mysql,讓配置生效:
sudo service mysql restart
得到當前binlog資訊:
mysql> show master status;
+------------------+----------+--------------+------------------+--------------- ----+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_ Set |
+------------------+----------+--------------+------------------+--------------- ----+
| mysql-bin.000003 | 232 | master | mysql | |
+------------------+----------+--------------+------------------+--------------- ----+
1 row in set (0.03 sec)
我們關注File(mysql-bin.000003)和Position(232),這兩個狀態是我們需要同步需要用到的,此時不要動資料庫了,不管是增刪改查都會改變Posituion。
你這裡看到Binlog_Do_DB是叫做master,是因為我資料庫名就叫master,其他名字也可以的,看你具體建立。
4、配置從伺服器
首先檢查能不能遠端主資料庫:
shell> mysql -u root -h xx.xx.xx.xx -p
shell> (輸入密碼123456,因為我們主服務其授權的時候的密碼是123456)
編輯mysql配置檔案:
cd /etc/mysql
cp my.cnf mycnf.bak
nano my.cnf
修改配置檔案:
server-id = 2(服務id,這個需要每個不同)
log_bin = /var/log/mysql/mysql-bin.log(這是主伺服器,必須開啟log_bin,這句就是開啟了)
binlog_format =mixed(混合比較好)
binlog_do_db = master(需要同步的資料庫,如果多個數據庫,重複這個配置)
binlog_ignore_db = mysql(排除不需要同步的資料庫,如果多個數據庫,重複這個配置)
重啟mysql服務:
sudo service mysql restart
讓主伺服器同步資料到從伺服器
mysql> stop slave;
mysql> change master to master_host='xx.xx.xx.xx', master_user='root',master_password='123456',
master_log_file='mysql-bin.000003',
master_log_pos=232;(保證是最新的position)
mysql> start slave;
檢視從資料庫資訊:
show slave status;
此時你看到
Slave_IO_Running | Slave_SQL_Running
| Yes | Yes
就說明配置成功了。
這時你總算可以去操作主資料庫了。
這時你建立一個表插入資料你可以看到從資料庫也改變了。
相關推薦
mysql主從複製(單向同步)
0、環境 系統:ubuntu14.04(阿里雲\騰訊雲) 資料庫:mysql5.6 主:阿里雲ubuntu 從:騰訊雲ubuntu 預設需要同步的資料庫已經事先建立。 1、原理 我們設定一個主庫(Master),和一個從庫(S
mysql主從複製(基於gtid)
mysql的主從複製 主伺服器將更新寫入二進位制日誌檔案,並維護檔案的一個索引以跟蹤日誌迴圈。這些日誌可以記錄傳送到從伺服器的更新.當一個從伺服器連線主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主
Mysql主從複製(GTID),一主兩從
複製原理: Mysql中有一種日誌叫做bin日誌(二進位制日誌)。這個日誌會記錄下所有修改了資料庫的SQL語句(insert,update,delete,ALTER TABLE,grant等等)。 主從複製的原理其實就是把主伺服器上的BIN日誌複製到從伺服器上執行一遍,這樣
MySQL 的主從複製(windows版)
1.概要 1.1 配置過程 1.2 複製型別和半同步複製(可選) 1.3 簡單測試 1.4主庫故障及崩潰處理 1.5 從庫故障及崩潰處理 配置過程 2.1修改主伺服器my.ini [mysqld] log-bin=mysql-bin //[必須]啟用
Linux下Mysql主從複製(從庫是MariaDB)
排版不易,希望能幫助到大家 一、準備2臺伺服器 ip:120.168.0.1(主)、120.168.0.2(從) 二、配置檔案 1. Linux中的MySQL配置檔案都在/etc/my.cnf(windows中的配置檔案為mysql.ini)
以Docker方式實現MySql 主從複製(實踐篇)
本文實踐了用Docker方式來實現基於binlog的MySql主從複製。關於MySql主從複製的原理將在下一篇中進行講解。 一些資料的本地儲存目錄結構 mysql >tree
mysql主從複製(版本不一致)
mysql主從複製要求版本最好一致,至少前兩個版本號相同,因為官方推薦這樣,最主要還是怕版本不一致帶來的不相容問題;最近剛好在學習mysql主從複製,我已經有了兩臺伺服器,但是mysql版本並不一致,但是既然版本不一致有可能導致不相容,那麼我就讓低版本作為主ma
MySQL主從複製(一)環境搭建
一、本教程是基於windows 10_64 位系統,MySQL Server 5.5_64 環境下進行搭建的 二、環境搭建步驟: 將本機MySQL服務停止 2.找到MySQL安裝的路徑複製其整個資料夾,將其複製到其他位置中,這裡我複製了兩個
mysql主從複製(Windows虛擬機器安裝兩個mysql)
原理:主伺服器(Master)負責網站NonQuery操作,從伺服器負責Query操作,使用者可以根據網站功能模特性塊固定訪問Slave伺服器,或者自己寫個池或佇列,自由為請求分配從伺服器連線。主從伺服器利用MySQL的二進位制日誌檔案,實現資料同步。二進位制日誌由主伺服器
Mysql 5.7.1.0 實現主從複製(master-slave)
開始前 請 保證兩臺主機的 防火牆、防毒軟體 不會阻止兩臺主機的正常通訊 。下面通過6步操作實現主從複製!
Mysql主從配置(超級簡單)
配置 ges ide wait mas 建立 slave end event fec 1、準備(版本和數據保持一致):主服務器 192.168.2.41(主)從服務器 192.168.2.42(從) 2、修改主服務器master: #vi my.cnf [mysqld
mysql主從複製實現資料庫同步
1、Introduction 相信看過這篇文章的童鞋,都摩拳擦掌,躍躍一試了吧? 今天我們就來一次mysql主從同步實戰! 2、環境說明 os:ubuntu16.04 mysql:5.7.17 下面的實戰演練,都是基於上面的環境。當然,其他環境也大同小異。
Redis實現主從複製(Master&Slave)
由於前段時間公司專案比較趕,一直抽不出時間寫部落格,今天偷空寫一篇吧。前面給大家講解了單機版redis的基本操作,現在繼續給大家講解一下Redis的進階部分,主從複製和讀寫分離。 一、Master&Slave是什麼? 也就是我們所
Redis 主從複製(服務叢集)
1、首先複製倆個slave出來 cp redis,conf redis6380.conf cp redis,conf redis6381.conf 2、進入配置檔案中修改以下配置 2.1、主伺服器設定,要關閉rdb,當從伺服器上開啟aof,那麼主伺服器就不要開啟了,反之! 2.2、設定s
redis基礎簡介(七)- 主從複製(master & slave)
簡介 redis主從複製配置和使用都非常的簡單。通過主從複製可以允許多個 slave 擁有和 master 相同的資料庫副本。 redis主從複製的特點: master可以擁有多個slave 多個 slave 除了可以連線同一個master之外,還可以連
MySQL組複製(Group Replication)
本文將介紹一下MySQL組複製以及如何安裝和配置、監控組。 組複製是MySQL伺服器外掛,通過這種外掛可以實現彈性、高可用、容錯複製拓撲結構。 複製組能夠以一種自動優先選擇的單主模式執行,在某個時間只有一個伺服器接受更新 。但是對於更高優先順序的使用者,組能夠
Mysql主從複製、半同步複製、並行複製
一、主從複製 1.主從複製原理 MySQL之間資料複製的基礎是二進位制日誌檔案(binary log file)。一臺MySQL資料庫一旦啟用二進位制日誌後,其作為master,它的資料庫中所有操作都會以“事件”的方式記錄在二進位制日誌中,其他資料庫作為
(二)mysql主從複製搭建
mysql通過什麼實現主從複製? 通過mysql本身自帶的binlog日誌檔案來實現主從複製,mysql會把所有的操作儲存在binlog日誌中,從庫同步主庫中的binlog日誌,從庫得到主庫的操作記錄,從庫再執行記錄,實現了主從複製,資料一致。 主從優勢:資料庫備份 &nbs
Linux下mysql主從複製配置(CentOS7)
主從複製需要注意: 1、資料庫版本必須一致 2、資料庫名稱必須一致 例如db888 3、配置主資料庫開啟二進位制日誌 4、主資料庫、從資料庫必須具有一個唯一的server-id 配置主從資料庫複製: 一:操作主庫 1、修改主庫的配置檔案 vi /e
【Mycat】資料庫效能提升利器(三)——Mycat實現Mysql主從複製和讀寫分離
一、前言 在前一篇文章中,小編向大家 介紹了使用Mycat水平切分資料庫。可以說,使用了水平分庫後,資料庫提升還是很高的。如果想更高的提高資料庫效能,就可以考慮對Mysql進行主從複製和讀寫分離了。 在這篇部落格中,小編就向大家介紹基於Mycat的M