技能:msyql如何主從庫配置?
1.場(chǎng)景描述
廢話不多說了,簡(jiǎn)單記錄下mysql主從庫配置,實(shí)現(xiàn)讀寫分離,還可以設(shè)置延遲同步,防止誤操作,起到備庫作用。。
2.解決方案
簡(jiǎn)單記錄下如何快速對(duì)現(xiàn)有mysql庫實(shí)現(xiàn)讀寫分離,至于可能遇到的數(shù)據(jù)不一致等問題,后續(xù)再解釋,本次只介紹如何快速對(duì)現(xiàn)有mysql做主從庫配置/讀寫分離。
2.1 原理
MySQL主從庫或者讀寫分離配置,其實(shí)依靠的mysql自帶二進(jìn)制日志。
簡(jiǎn)單說就是在主庫上做的動(dòng)作(增刪改)會(huì)全部記錄在主庫中的日志中,從庫通過查詢主庫(主庫要給權(quán)限)日志,然后照著主庫日志再從庫上操作一遍,這樣就實(shí)現(xiàn)了主從復(fù)制。
說明:
兩臺(tái)服務(wù)器,每個(gè)上面一個(gè)數(shù)據(jù)庫,主庫ip:192.168.10.14,從庫ip:192.168.10.16
2.2 主庫設(shè)置(192.168.10.14):
(1)root下進(jìn)入mysql用戶
su?-?mysql
(2) 修改配置文件my.cnf ,并給從庫設(shè)置日志查詢權(quán)限。
vi?/etc/my.cnf??
server_id?=14
log-bin=mysql-bin
binlog_do_db=test?
:wq
#軟件老王,重啟mysql
service?mysqld?restart
創(chuàng)建用戶并賦權(quán):
GRANT?replication?slave?ON?*.*?TO?'slave'@'%'?identified?by?'laowang';
(3)查看主庫信息,后續(xù)從庫中要配置
通過navicat或者直接連接myql查看下信息(/usr/local/mysql/bin/mysql -uroot -p mysql),后續(xù)從庫中要用這個(gè)信息
show master status;

2.3 從庫設(shè)置(192.168.10.16):
(1)修改/etc/my.cnf
vi?/etc/my.cnf??
server_id?=16
log-bin=mysql-bin
binlog_do_db=test?
:wq
#軟件老王,重啟mysql
service?mysqld?restart
(2)在secureCRT下操作,設(shè)置從庫配置。
mysql>stop?slave;
mysql>change?master?to?
master_host='192.168.10.14',
master_user='slave',
master_password='laowang',
master_log_file='mysql-bin.000002',
master_log_pos=1236;
mysql>start?slave;
mysql>?show?slave?status;????
(3)還可以設(shè)置延遲同步,以免誤操作主從庫數(shù)據(jù)都沒有了,如下:延遲3分鐘30分鐘同步。
CHANGE?MASTER?TO?MASTER_DELAY?=?1800;單位為秒
2.4 驗(yàn)證
(1)分別在主庫(14)和從庫(16)的test數(shù)據(jù)庫下創(chuàng)建測(cè)試表
CREATE?TABLE?`dfdaf`?(
??`dfafd`?varchar(100)?DEFAULT?NULL
)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;
(2)對(duì)主庫14進(jìn)行操作,然后查詢從庫16,看是否同步過來了。


微盟刪庫事件賠償1.5億,那個(gè)程序員判了6年!

一款開源的.NET Core爬蟲神器:DotnetSpider
