国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 詳解MySQL數據庫設置主從同步的方法

詳解MySQL數據庫設置主從同步的方法

2020-07-01 15:57偶木 Mysql

最近一直在研究mysql的主從同步問題,現在網上也有很多資料,現在感覺寫的都很好(當初感覺寫的很差,是因為自己的領悟較差),于是想跟大家分享一下自己配置的整個過程和經驗。有需要的朋友可以參考借鑒,感興趣的朋友們下

簡介

MySQL主從同步是目前使用比較廣泛的數據庫架構,技術比較成熟,配置也不復雜,特別是對于負載比較大的網站,主從同步能夠有效緩解數據庫讀寫的壓力。

MySQL主從同步的機制:

MySQL同步的流程大致如下:

     1、主服務器(master)將變更事件(更新、刪除、表結構改變等等)寫入二進制日志(master log)。

     2、從服務器(slave)的IO線程從主服務器(binlog dump線程)獲取二進制日志,并在本地保存一份自己的二進制日志(relay log)

     3、從服務器的SQL線程讀取本地日志(relay log),并重演變更事件。

詳解MySQL數據庫設置主從同步的方法

MySQL主從同步的作用:

     1、可以作為一種備份機制,相當于熱備份(在從備份,避免備份期間影響主服務器服務)

     2、可以用來做讀寫分離,均衡數據庫負載(主寫從讀)

     3、當主服務器出現問題時,可以切換到從服務器。

MySQL主從同步的步驟:

一、準備操作:

1、主從數據庫版本一致,建議版本5.5以上

2、主從數據庫數據一致

二、主數據庫master修改:

1、修改MySQL配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# /etc/my.cnf
log-bin = mysql-bin
 
# 主數據庫端ID號
server-id = 1
 
log-bin=/home/mysql/logs/binlog/bin-log
max_binlog_size = 500M
binlog_cache_size = 128K
binlog-do-db = adb
binlog-ignore-db = mysql
log-slave-updates
expire_logs_day=2
binlog_format="MIXED"

上面配置中各個參數的含義和相關注意項:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#服務器標志號,注意在配置文件中不能出現多個這樣的標識,如果出現多個的話mysql以第一個為準,一組主從中此標識號不能重復。
server-id = 1
 
log-bin=/home/mysql/logs/binlog/bin-log #開啟bin-log,并指定文件目錄和文件名前綴。
 
#每個bin-log最大大小,當此大小等于500M時會自動生成一個新的日志文件。一條記錄不會寫在2個日志文件中,所以有時日志文件會超過此大小。
max_binlog_size = 500M
 
binlog_cache_size = 128K #日志緩存大小
 
binlog-do-db = adb #需要同步的數據庫名字,如果是多個,就以此格式在寫一行即可。
 
binlog-ignore-db = mysql #不需要同步的數據庫名字,如果是多個,就以此格式在寫一行即可。
 
#當Slave從Master數據庫讀取日志時更新新寫入日志中,如果只啟動log-bin 而沒有啟動log-slave-updates則Slave只記錄針對自己數據庫操作的更新。
log-slave-updates
 
expire_logs_day=2 #設置bin-log日志文件保存的天數,此參數mysql5.0以下版本不支持。
 
binlog_format="MIXED" #設置bin-log日志文件格式為:MIXED,可以防止主鍵重復。

2、重啟mysql,創建用于同步的賬戶:

?
1
2
3
4
5
# 創建slave帳號slave,密碼111111
mysql>grant replication slave on *.* to 'slave'@'%' identified by '111111';
 
# 更新數據庫權限
mysql>flush privileges;

3、查詢master的狀態

?
1
2
3
4
5
6
7
mysql> show master status;
+------------------+----------+--------------+------------------+
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 |  196 |    |     |
+------------------+----------+--------------+------------------+
1 row in set

注:執行完這個步驟后不要再操作主數據庫了,防止主數據庫狀態值變化

三、從數據庫slave修改:

1、修改MySQL配置:

?
1
2
# 從數據庫端ID號
server-id =2

2、執行同步命令

?
1
2
3
4
5
# 執行同步命令,設置主數據庫ip,同步帳號密碼,同步位置
mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='111111',master_log_file='mysql-bin.000009',master_log_pos=196;
 
# 開啟同步功能
mysql>start slave;

3、檢查從數據庫狀態:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> show slave status\G;
*************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
     Master_Host: 192.168.1.2
     Master_User: slave_account
     Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000009
   Read_Master_Log_Pos: 196
    Relay_Log_File: vicky-relay-bin.000002
    Relay_Log_Pos: 253
  Relay_Master_Log_File: mysql-bin.000009
    Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
    Replicate_Do_DB:
   Replicate_Ignore_DB:
   ...
   ...

注:Slave_IO_Running及Slave_SQL_Running進程必須正常運行,即YES狀態,否則說明同步失敗。可用這兩項判斷從服務器是否掛掉

到這里,主從數據庫設置工作已經完成,自己可以新建數據庫和表,插入和修改數據,測試一下是否成功

四、其他可能用到的相關參數:

1、master端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 不同步哪些數據庫
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
 
# 只同步哪些數據庫,除此之外,其他不同步
binlog-do-db = game
 
# 日志保留時間
expire_logs_days = 10
 
# 控制binlog的寫入頻率。每執行多少次事務寫入一次
# 這個參數性能消耗很大,但可減小MySQL崩潰造成的損失
sync_binlog = 5
 
# 日志格式,建議mixed
# statement 保存SQL語句
# row 保存影響記錄數據
# mixed 前面兩種的結合
binlog_format = mixed

2、slave端:

?
1
2
3
4
5
6
7
8
# 停止主從同步
mysql> stop slave;
 
# 連接斷開時,重新連接超時時間
mysql> change master to master_connect_retry=50;
 
# 開啟主從同步
mysql> start slave;

以上連接超時設置,類似方式可用于設置主數據庫ip,同步帳號密碼,同步位置

詳解MySQL數據庫設置主從同步的方法

判斷主從服務器是否正常運行代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//在從服務器中執行以下語句
$sql = "show slave status";
$result = mysql_query($sql, $slave_link);
$row = mysql_fetch_assoc($result);
 
$Slave_IO_Running = $row['Slave_IO_Running'];
$Slave_SQL_Running = $row['Slave_SQL_Running'];
 
//下面兩項為判斷標準
if ('Yes' == $Slave_IO_Running && 'Yes' == $Slave_SQL_Running) {
 
} else {
 $content .= "從數據庫( $host )掛掉了!!! <br/>";
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 影音先锋中文字幕一区 | 99草视频| 亚洲第一成年人视频 | 91精品啪啪 | 亚洲国产一级毛片 | 午夜精品久久久久久久久久久久 | 五月婷婷精品 | 欧美成人a | av一区二区三区免费观看 | 久久久免费网站 | 懂色av成人一区二区三区 | 国产黄色免费观看 | 黄色影视 | 精品1区 | 国内精品在线视频 | 久久黄视频 | 欧美a网| 毛片免费观看视频 | 国产精品第一区 | 欧美激情精品久久久久久 | 国产精品对白一区二区三区 | av网站推荐 | 天天干人人 | 亚洲一区二区三区免费 | 欧美一区二区三区视频 | 黄色毛片一级片 | 久久久久国产一区二区三区 | 欧美 日韩 中文 | 欧美二区三区 | 国产中文字幕在线 | 欧美精品亚洲精品 | 三级在线观看网站 | 在线不卡视频 | 亚州中文字幕 | 久久九 | 国产精品久久久久久久久久免费动 | 亚洲人成在线播放 | 精品福利网站 | 亚洲免费影院 | 黄色影院 | 国产日韩精品一区 |