摘要:注意版本之后,已經(jīng)不支持把配置屬性寫入配置文件中了,只需要把同步的數(shù)據(jù)庫(kù)和要忽略的數(shù)據(jù)庫(kù)寫入即可。
數(shù)據(jù)庫(kù)配置
主數(shù)據(jù)庫(kù):172.20.17.211 從數(shù)據(jù)庫(kù):172.20.17.210
一、創(chuàng)建主/從數(shù)據(jù)同步賬戶( 主從兩臺(tái)數(shù)據(jù)庫(kù)都要執(zhí)行 )
# 開啟遠(yuǎn)程訪問支持 /usr/local/mysql/bin/mysql -h172.20.17.211 -uroot -pwoshishui #登錄數(shù)據(jù)庫(kù) update mysql.user set Host="%" where User="root" and Host="localhost"; #開啟Mysql遠(yuǎn)程訪問支持 select Host,User,Password from mysql.user limit 10 G; # 查看修改結(jié)果 flush privileges; # 刷新權(quán)限 # 主/從數(shù)據(jù)庫(kù)添加授權(quán)賬戶 CREATE USER "xzdesk"@"%" IDENTIFIED BY "woshishui"; # 創(chuàng)建授權(quán)賬戶xzdesk 密碼woshishui GRANT ALL ON *.* TO "xzdesk"@"127.0.0.1"; # 授權(quán)xzdesk用戶擁有全部數(shù)據(jù)庫(kù)的所有權(quán)限 GRANT ALL ON `ceshi`.* TO "xzdesk"@"%"; # 授權(quán)xzdesk用戶擁有ceshi數(shù)據(jù)庫(kù)的所有權(quán)限 # 第二種 授權(quán)和添加賬戶一起操作 # GRANT ALL ON `ceshi`.* TO "xzdesk"@"127.0.0.1" IDENTIFIED BY "woshishui"; # 撤銷用戶授權(quán) REVOKE ALL ON *.* TO "xzdesk"@"%"; # 撤銷xzdesk的所有授權(quán) # REVOKE delete ON databasename.tablename FROM "username"@"host"; # 沒搞明白撒意思,不用執(zhí)行 # 創(chuàng)建授權(quán)用戶 #insert into mysql.user(Host,User,Password) values("172.20.17.210","xzdesk",password("woshishui")); # 刪除xzdesk用戶( 授權(quán)信息無法刪除 ) #DELETE FROM user WHERE User="xzdesk" and Host="%";
二、主服務(wù)器配置(172.20.17.211)
/usr/local/mysql/bin/mysql -h172.20.17.211 -uroot -pwoshishui create database ceshi; # 創(chuàng)建ceshi數(shù)據(jù)庫(kù) flush tables with read lock; # 數(shù)據(jù)庫(kù)只讀鎖定命令 # 導(dǎo)出主服務(wù)器數(shù)據(jù)庫(kù) /usr/local/mysql/bin/mysqldump -h172.20.17.211 -uroot -pwoshishui ceshi > /data/ceshi_20160609.sql unlock tables; # 解除鎖定 # 主服務(wù)器數(shù)據(jù)導(dǎo)入從服務(wù)器 # 第一種方法 /usr/local/mysql/bin/mysql -h172.20.17.210 -uroot -pwoshishui # 進(jìn)入從服務(wù)器MySQL控制臺(tái) create database ceshi; # 創(chuàng)建數(shù)據(jù)庫(kù) use ceshi # 進(jìn)入數(shù)據(jù)庫(kù) /usr/local/mysql/bin/mysql -h172.20.17.210 -uroot -pwoshishui ceshi < /data/ceshi_20160609.sql # 第二種方法 /usr/local/mysql/bin/mysql -h172.20.17.210 -uroot -pwoshishui # 進(jìn)入從服務(wù)器MySQL控制臺(tái) create database ceshi; # 創(chuàng)建數(shù)據(jù)庫(kù) use ceshi # 進(jìn)入數(shù)據(jù)庫(kù) source /data/ceshi_20160609.sql # 導(dǎo)入備份文件到數(shù)據(jù)庫(kù)
四、配置MySQL主服務(wù)器的my.cnf文件
vim /etc/my.cnf # 編輯配置文件,在[mysqld]部分添加下面內(nèi)容 server-id=1 # 設(shè)置服務(wù)器id,為1表示主服務(wù)器,注意:如果原來的配置文件中已經(jīng)有這一行,就不用再添加了。 log_bin=mysql-bin # 啟動(dòng)MySQ二進(jìn)制日志系統(tǒng),注意:如果原來的配置文件中已經(jīng)有這一行,就不用再添加了。 binlog-do-db=ceshi # 需要同步的數(shù)據(jù)庫(kù)名,如果有多個(gè)數(shù)據(jù)庫(kù),可重復(fù)此參數(shù),每個(gè)數(shù)據(jù)庫(kù)一行 binlog-ignore-db=mysql # 不同步mysql系統(tǒng)數(shù)據(jù)庫(kù) binlog-ignore-db=performance_schema binlog-ignore-db=information_schema :wq! #保存退出 service mysqld restart # 重啟MySQL mysql -u root -p # 進(jìn)入mysql控制臺(tái) show master status; # 查看主服務(wù)器,出現(xiàn)以下類似信息 +------------------+----------+--------------+---------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+---------------------------------------------+ | mysql-bin.000006 | 575 | ceshi | mysql,performance_schema,information_schema | +------------------+----------+--------------+---------------------------------------------+
五、配置MySQL從服務(wù)器的my.cnf文件
vim /etc/my.cnf # 編輯配置文件,在[mysqld]部分添加下面內(nèi)容 server-id=2 # 配置文件中已經(jīng)有一行server-id=1,修改其值為2,表示為從數(shù)據(jù)庫(kù) log-bin=mysql-bin # 啟動(dòng)MySQ二進(jìn)制日志系統(tǒng),注意:如果原來的配置文件中已經(jīng)有這一行,就不用再添加了。 replicate-do-db=ceshi # 需要同步的數(shù)據(jù)庫(kù)名,如果有多個(gè)數(shù)據(jù)庫(kù),可重復(fù)此參數(shù),每個(gè)數(shù)據(jù)庫(kù)一行 replicate-ignore-db=mysql # 不同步mysql系統(tǒng)數(shù)據(jù)庫(kù) replicate-ignore-db=performance_schema replicate-ignore-db=information_schema :wq! #保存退出 //CHANGE MASTER TO MASTER_HOST="172.20.17.110", MASTER_USER="slave1", MASTER_PASSWORD="123456", MASTER_LOG_FILE="mysql-bin.000054", MASTER_LOG_POS=2693; service mysqld restart # 重啟MySQL /usr/local/mysql/bin/mysql -h172.20.17.210 -uroot -pwoshishui slave stop; # 停止slave同步進(jìn)程 change master to master_host="172.20.17.211",master_user="xzdesk",master_password="woshishui",master_log_file="mysql-bin.000006" ,master_log_pos=575; #執(zhí)行同步語(yǔ)句 slave start; # 開啟slave同步進(jìn)程 SHOW SLAVE STATUSG # 查看slave同步信息,出現(xiàn)以下內(nèi)容 Slave_IO_State: Waiting for master to send event Master_Host: 172.20.17.211 Master_User: root Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000006 Read_Master_Log_Pos: 341 Relay_Log_File: mysql-relay-bin.000002 Relay_Log_Pos: 487 Relay_Master_Log_File: mysql-bin.000006 Slave_IO_Running: Yes # 此狀態(tài)必須YES Slave_SQL_Running: Yes # 此狀態(tài)必須YES Replicate_Do_DB: ceshi Replicate_Ignore_DB: mysql,performance_schema,information_schema 注意:Slave_IO及Slave_SQL進(jìn)程必須正常運(yùn)行,即YES狀態(tài),否則都是錯(cuò)誤的狀態(tài)(如:其中一個(gè)NO均屬錯(cuò)誤)。 注意:MySQL 5.1.7版本之后,已經(jīng)不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數(shù)據(jù)庫(kù)和要忽略的數(shù)據(jù)庫(kù)寫入即可。
# mysql -uroot -p mysql> show global variables like "%read_only%"; mysql> flush tables with read lock; mysql> set global read_only=1; mysql> show global variables like "%read_only%"; 將MySQL從只讀設(shè)置為讀寫狀態(tài)的命令: mysql> unlock tables; mysql> set global read_only=0; 對(duì)于需要保證master-slave主從同步的salve庫(kù),如果要設(shè)置為只讀狀態(tài),需要執(zhí)行的命令為: mysql> set global read_only=1; 將salve庫(kù)從只讀狀態(tài)變?yōu)樽x寫狀態(tài),需要執(zhí)行的命令是: mysql> set global read_only=0; 連續(xù)輸入兩條命令確保從數(shù)據(jù)庫(kù)只讀: set global read_only=1; flush tables with read lock;
參考文獻(xiàn)
錯(cuò)誤排查文獻(xiàn)
**
給程序員一個(gè)鼓勵(lì)唄!**
微信
支付寶
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30372.html
摘要:的主從備份相關(guān)配置服務(wù)器號(hào),不要和其他服務(wù)器重復(fù)開啟二進(jìn)制日志索引二進(jìn)制日志的文件名設(shè)為就是把每次發(fā)生的修改和事件的日志即時(shí)同步到硬盤上復(fù)制模式防止從服務(wù)器在崩潰后自動(dòng)開啟,以給你足夠的時(shí)間修復(fù)。 實(shí)踐背景 最近加入了同學(xué)的技術(shù)分享小組,4個(gè)人分兩組,半月進(jìn)行一次技術(shù)分享,現(xiàn)在一起搞Mysql我被分到講解Mysql日志方面,上周已經(jīng)講完了,不過他們總是覺得對(duì)于日志這塊了解不透徹,覺得不...
摘要:前者稱為主節(jié)點(diǎn),后者稱為從節(jié)點(diǎn)數(shù)據(jù)的復(fù)制是單向的,只能由主節(jié)點(diǎn)到從節(jié)點(diǎn)。主從復(fù)制的作用數(shù)據(jù)冗余主從復(fù)制實(shí)現(xiàn)了數(shù)據(jù)的熱備份,是持久化之外的一種數(shù)據(jù)冗余方式。檢測(cè)主節(jié)點(diǎn)當(dāng)前是否可接受處理命令。 showImg(https://segmentfault.com/img/bVboOAF?w=1772&h=591); Redis是一個(gè)開源的使用ANSI C語(yǔ)言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化...
閱讀 3325·2021-11-12 10:36
閱讀 2483·2021-11-02 14:43
閱讀 2156·2019-08-30 14:23
閱讀 3470·2019-08-30 13:08
閱讀 928·2019-08-28 18:09
閱讀 3141·2019-08-26 12:22
閱讀 3155·2019-08-23 18:24
閱讀 2025·2019-08-23 18:17