mysql主從複製的理解和搭建
1,mysql主從複製的理解圖:
2,mysql主從複製的概念和好處:
mysql的主從複製,是用來建立一個和主資料庫完全一樣的資料庫環境,稱為從資料庫,主資料庫一般是實時的業務資料操作,從資料庫常用的讀取為主。
優點主要有
1,可以作為備用資料庫進行操作,當主資料庫出現故障之後,從資料庫可以替代主資料庫繼續工作,不影響業務流程
2,讀寫分離,將讀和寫應用在不同的資料庫與伺服器上。一般讀寫的資料庫環境配置為,一個寫入的資料庫,一個或多個讀的資料庫,各個資料庫分別位於不同的伺服器上,充分利用伺服器效能和資料庫效能;當然,其中會涉及到如何保證讀寫資料庫的資料一致,這個就可以利用主從複製技術來完成。
3,吞吐量較大,業務的查詢較多,併發與負載較大。
3,windows上的mysql主從複製搭建:
1,所謂mysql的主從,我們首先應該準備好兩個資料庫,為了避免介面衝突,我的一臺mysql的伺服器的埠為3306,另一臺伺服器的埠號為3307,埠號在mysql的配置檔案my.ini中配置。
主伺服器配置:
[mysqld]
#mysqld 配置
port=3307
basedir=D:\laravel\mysql2
datadir=D:\laravel\mysql2\data
從伺服器的埠部分配置:
[mysqld]
port=3306
basedir="F:/myphp_www/PHPTutorial/MySQL/"
datadir="F:/myphp_www/PHPTutorial/MySQL/data/"
2,在我新配置的主資料庫上,需要配置mysql的服務於啟動:
首先使用管理員身份執行cmd,跳轉到mysql中的bin目錄。安裝mysql的服務:mysqld install mysql2 --defaults-file="c:\wamp\bin\mysql2\mysql5.6.17\my.ini"
紅色字型的mysql2是我配置的環境變數:
啟動mysql服務。
net start mysql 啟動mysql服務
Net stop mysql 停止mysql服務
3,配置mysql的主從複製,我的這裡是埠號為3307的為主資料庫,3306的為從資料庫,在主資料庫上新增主從複製的mysql賬號,兩個資料庫連結的鈕釦:
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO mysql_backup@'%'
IDENTIFIED BY '123456';
一個賬號為mysql_backup的使用者建立成功了,密碼為123456
重新整理資料庫許可權:flush privileges;
4,配置主伺服器,這裡注意兩臺伺服器的server_id不可以一樣,現在我的主伺服器的配置如下:
[mysqld]
#mysqld 配置
port=3307
basedir=D:\laravel\mysql2
datadir=D:\laravel\mysql2\data
server-id=1
log-bin=mysql-bin#開啟了二進位制檔案
binlog_do_db=follow#主從複製的資料庫
binlog_ignore_db=mysql#不參與數從複製的資料庫,例如mysql
binlog_checksum=none#mysql主從複製版本高
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
配置完成只好在cmd中重啟我的mysql2
navicat中重啟master之後並檢視master的狀態:SHOW MASTER STATUS
重置master:reset master;
5,配置從伺服器,
[mysqld]
port=3306
basedir="F:/myphp_www/PHPTutorial/MySQL/"
datadir="F:/myphp_www/PHPTutorial/MySQL/data/"
character-set-server=utf8
default-storage-engine=MyISAM
server_id=2
log-bin=mysql-bin
binlog-do-db=follow#同步的資料庫
binlog-ignore-db=mysql#同步的資料庫
重啟mysql之後通過配置的賬號密碼連結主資料庫,根據master的狀態自定:CHANGE MASTER TO master_host = '127.0.0.1',
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin.000004',
master_port = 3307;
master_log_pos = 120;
重啟slave:START SLAVE
重置slave:RESET SLAVE
檢視從資料庫的狀態:show slave status;
當相應的結果中,slave_IO_Running與slave_SQL_Running兩個執行緒都為Yes時,主從配置成功。
Linux的mysql主從複製搭建:
跟本地一樣,搭建mysql主從複製,首先需要兩臺資料庫,我是兩臺服務上直接搭建的mysql主從複製
1,首先在主機上賦予叢機的許可權,如果有多臺從機的話,就賦予多次:GRANT REPLICATION SLAVE ON *.* TO slave@'118.24.89.47' IDENTIFIED BY '1234';
然後進入資料庫執行:select user,host from mysql.user;
可以看到這裡給了從機ip為118的一個許可權,賬號為slave.
2,然後就需要設定主機資料庫的my.cnf,設定主機標識的service-id,確保可寫的二進位制log_bin檔案,具體如下:
server_id=1#主機的標識
log-bin=mysql-bin.log#確保可寫入的日誌檔案
binlog_format=mixed#二進位制日誌的格式,
binlog-do-db=master#允許主從複製資料庫
binlog-ignore-db=mysql#不允許主從複製的資料庫
~~~~~~~~~~~~~~~~~~~~重新啟動mysql服務
3,配置叢機的配置,同樣也是在my.cnf的配置檔案中,注意service_id不可重複:
server_id=2#主機的標識
log-bin=mysql-bin.log#確保可寫入的日誌檔案
binlog_format=mixed#二進位制日誌的格式,
replicate_wild_do_table=oldboy.%
replicate_wild_ignore_table=mysql.%
4,給主機的(1)mysql 鎖表,(2)查詢master的狀態,並(3)解鎖:
(1)flush tables with read lock;
(2)show master status;(是檢視當前bin-log日誌的位置點)
file:生成的二進位制日誌
position:隨著bin_log的日誌檔案更新內容,發生的變化
binlog_do_db:主從複製的資料庫
binlog_ignore_db:不允許主從複製的資料庫
(3)unlock tables;
5,在從庫上鍊接主資料庫,連結資料master_host='是主機的ip' 依次在資料上執行:
stop slave;
change master to master_host='119.27.169.173',master_user='slave',master_password='1234',master_log_file='mysql-bin.000006',master_log_pos=245;
start slave;
6,最後檢視slave的狀態:show slave status\G;
當Slave_IO_Running和Slave_SQL_Running執行緒都為yes是主從複製配置成功!
此博文有待更改,有什麼錯誤還望各位及時指出!!!
相關文章
- mysql主從複製搭建MySql
- 簡單搭建MySQL主從複製MySql
- Mysql主從複製原理及搭建MySql
- MySQL(14)---Docker搭建MySQL主從複製(一主一從)MySqlDocker
- Windows 環境下,MySQL 的主從複製和主主複製WindowsMySql
- windows環境下,Mysql的主從複製和主主複製WindowsMySql
- MySQL5.7主從複製-半同步複製搭建MySql
- mysql 5.7 主從複製搭建及原理MySql
- docker-compase搭建mysql主從複製DockerMySql
- mysql資料庫的主從複製和主主複製實踐MySql資料庫
- MySQL的主從複製MySql
- Mysql 8.4.0 結合 Docker 搭建GTID主從複製,以及傳統主從複製MySqlDocker
- mysql5.7主從複製,主主複製MySql
- mysql複製--主從複製配置MySql
- MySQL 5.7 基於GTID搭建主從複製MySql
- Docker Compose搭建MySQL主從複製叢集DockerMySql
- MySQL主從複製MySql
- MySQL-主從複製之搭建主資料庫MySql資料庫
- MySQL-主從複製之搭建從資料庫MySql資料庫
- 基於 Docker 的 MySQL 主從複製搭建(真正弄懂)DockerMySql
- MySQL主從複製之GTID複製MySql
- mysql 8.4 主從複製MySql
- mysql--主從複製MySql
- MySQL主從複製原理MySql
- MySQL主從複製之半同步複製MySql
- MySQL主從複製之非同步複製MySql非同步
- MySQL 的主從複製實踐MySql
- 聊聊MySQL主從複製的幾種複製方式MySql
- MySQL++:Liunx - MySQL 主從複製MySql
- MySQL(13)---MYSQL主從複製原理MySql
- [Mysql]主從複製和讀寫分離MySql
- mysql主從複製(一):一主多從MySql
- MySQL-18.主從複製MySql
- MySQL主從複製歷程MySql
- Mysql 傳統主從複製MySql
- MySQL8.0主從複製MySql
- Windows Mysql主從複製部署WindowsMySql
- windows 下mysql主從複製WindowsMySql