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