亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

ubuntu 16.04配置MySQL主從同步的配置方法

2024-07-25 19:08:15
字體:
來源:轉載
供稿:網友

準備工作

1.主從數據庫版本最好一致

2.主從數據庫內數據保持一致

主數據庫:121.199.27.227 /ubuntu 16.04 MySQL 5.7.21 ( 阿里云 )

從數據庫:182.254.149.39 /ubuntu 16.04 MySQL 5.7.21 ( 騰訊云 )

防火墻配置

配置主服務器只允許特定 IP 訪問數據庫的端口,避免不必要的攻擊。

主庫防火墻配置

# iptables -A INPUT -p tcp -s slave_ip --dport 3306 -j ACCEPT#刪除可能已經存在的配置,避免出現多條重復記錄$ sudo iptables -D INPUT -p tcp -s 182.254.149.39 --dport 3306 -j ACCEPT $ sudo iptables -D INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT $ sudo iptables -D INPUT -p tcp --dport 3306 -j DROP $ sudo iptables -D INPUT -p udp --dport 3306 -j DROP $ sudo iptables -D INPUT -p sctp --dport 3306 -j DROP#增加配置,只允許特定地址訪問數據庫端口$ sudo iptables -A INPUT -p tcp -s 182.254.149.39 --dport 3306 -j ACCEPT$ sudo iptables -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT$ sudo iptables -A INPUT -p tcp --dport 3306 -j DROP$ sudo iptables -A INPUT -p udp --dport 3306 -j DROP$ sudo iptables -A INPUT -p sctp --dport 3306 -j DROP$ sudo iptables -L -n#保存配置$ sudo apt-get install iptables-persistent$ sudo netfilter-persistent save#配置被保存到/etc/iptables/rules.v4 /etc/iptables/rules.v6這兩個文件下面,#最好確認一下實際保存的內容,尤其是安裝了denyhosts等其他安全軟件的情況下,#可能會記錄了多余的規則,需要手工刪除從庫防火墻配置# iptables -A OUTPUT -p tcp -d master_ip --dport 3306 -j ACCEPT#刪除可能已經存在的配置,避免出現多條重復記錄$ sudo iptables -D OUTPUT -p tcp -d 121.199.27.227 --dport 3306 -j ACCEPT#增加配置$ sudo iptables -A OUTPUT -p tcp -d 121.199.27.227 --dport 3306 -j ACCEPT$ sudo iptables -L -n#保存配置$ sudo apt-get install iptables-persistent$ sudo netfilter-persistent save#配置被保存到/etc/iptables/rules.v4 /etc/iptables/rules.v6這兩個文件下面,#最好確認一下實際保存的內容,尤其是安裝了denyhosts等其他安全軟件的情況下,#可能會記錄了多余的規則,需要手工刪除

主數據庫master配置

1.修改mysql配置

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]部分進行如下修改:

[mysqld]log-bin = /var/log/mysql/mysql-bin.log #開啟二進制日志,默認是注釋掉的,我們去掉注釋server-id = 1 #設置server-idbind-address = 0.0.0.0 #默認是127.0.0.1,此處我們設置為任意地址,放開遠程訪問,這么操作之前一定要確保防火墻配置正確,否則會產生安全風險

2.重啟mysql,創建用于同步的用戶賬號

創建用戶并授權:用戶:repl 密碼:slavepass

$ sudo service mysql restart$ mysql -u root -p -e "CREATE USER 'repl'@'182.254.149.39' IDENTIFIED BY 'slavepass';" #創建用戶$ mysql -u root -p -e "GRANT REPLICATION SLAVE ON *.* TO 'repl'@'182.254.149.39';" #分配權限$ mysql -u root -p -e "flush privileges;" #刷新權限

3.查看master狀態,記錄二進制文件名(mysql-bin.000001)和位置(333802):

$ mysql -u root -p -e "SHOW MASTER STATUS;"Enter password: +------------------+----------+--------------+------------------+-------------------+| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 |  333802 |       |         |          |+------------------+----------+--------------+------------------+-------------------+

4.主庫備份,為從庫的第一次數據同步準備數據

使用如下腳本產生數據庫備份文件

#此處以備份wordpress數據庫為例子datadump=`which mysqldump`mysqluser="root"userpass="password" wordpressdb="wordpress"backupwordpress_sql=$wordpressdb.`date +%Y%m%d`.sqlif $datadump -u $mysqluser --password=$userpass -h localhost --opt $wordpressdb > $backupwordpress_sql 2>&1then  echo " backup $wordpressdb success"else  echo " backup $wordpressdb error"  exit 1fi#檢驗文件尾部是否存在 “-- Dump completed on”,如果存在不存在,則說明備份出錯了。if [ 0 -eq "$(sed '/^$/!h;$!d;g' $backupwordpress_sql | grep -c "Dump completed on")" ]; then echo " backup $wordpressdb error" exit 1 else echo " backup $wordpressdb success"fi

執行腳本,確保最后輸出備份成功

$ cd ~$ sudo bash backup_wordpress.sh

從服務器slave配置

1.修改mysql配置

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

修改server-id,每個數據庫的server-id要求是唯一的,不能相互沖突

[mysqld]server-id = 2 #設置server-id,必須唯一log_bin         = /var/log/mysql/mysql-bin.log #日志也最好打開

2.首次還原數據庫:

$ sudo service mysql restart$ scp -P 22 -r root@121.199.27.227:~/wordpress.*.sql ./#刪除可能存在的一行警告信息,這行警告信息可能導致我們無法恢復數據$ sed -i "/^mysqldump: /[Warning/] Using a password on the command line interface can be insecure/./d" wordpress.*.sql$ mysql -u root -p -e "drop database wordpress;"$ mysql -u root -p -e "create database wordpress;"$ mysql -u root -p wordpress < wordpress.*.sql

3.重啟mysql,打開mysql會話,執行同步SQL語句(需要主服務器主機名,登陸憑據,二進制文件的名稱和位置):

$ mysql -u root -p -e "CHANGE MASTER TO MASTER_HOST='121.199.27.227', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=333802;"

4.啟動slave同步進程:

$ mysql -u root -p -e "start slave;"

5.查看slave狀態:

$ mysql -u root -p -e "show slave status/G;"Enter password:*************************** 1. row ***************************        Slave_IO_State: Waiting for master to send event         Master_Host: 121.199.27.227         Master_User: repl         Master_Port: 3306        Connect_Retry: 60       Master_Log_File: mysql-bin.000001     Read_Master_Log_Pos: 9448236        Relay_Log_File: VM-114-251-ubuntu-relay-bin.000002        Relay_Log_Pos: 17780    Relay_Master_Log_File: mysql-bin.000001       Slave_IO_Running: Yes      Slave_SQL_Running: No       Replicate_Do_DB:     Replicate_Ignore_DB:      Replicate_Do_Table:    Replicate_Ignore_Table:   Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:    ...

當Slave_IO_Running和Slave_SQL_Running都為YES的時候就表示主從同步設置成功了。接下來就可以進行一些驗證了,比如在主master數據庫的test數據庫的一張表中插入一條數據,在slave的test庫的相同數據表中查看是否有新增的數據即可驗證主從復制功能是否有效,還可以關閉slave(mysql>stop slave;),然后再修改master,看slave是否也相應修改(停止slave后,master的修改不會同步到slave),就可以完成主從復制功能的驗證了。

還可以用到的其他相關參數:

master開啟二進制日志后默認記錄所有庫所有表的操作,可以通過配置來指定只記錄指定的數據庫甚至指定的表的操作,具體在mysql配置文件的[mysqld]可添加修改如下選項:

# 不同步哪些數據庫 binlog-ignore-db = mysql binlog-ignore-db = test binlog-ignore-db = information_schema # 只同步哪些數據庫,除此之外,其他不同步 binlog-do-db = game

如之前查看master狀態時就可以看到只記錄了test庫,忽略了manual和mysql庫。

總結

以上所述是小編給大家介紹的ubuntu 16.04配置MySQL主從同步的配置方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产性色av一区二区| 欧美大片在线免费观看| 日韩大胆人体377p| 日韩欧美国产激情| 日韩精品极品视频免费观看| 久久91精品国产91久久跳| 亚洲精品第一页| 亚洲欧美日韩天堂| 亚洲欧美中文字幕在线一区| 精品亚洲aⅴ在线观看| 少妇久久久久久| 97视频在线观看亚洲| 欧美性理论片在线观看片免费| 26uuu国产精品视频| 日本韩国在线不卡| 亚洲а∨天堂久久精品9966| 中文字幕在线观看日韩| 日韩av在线免费播放| 亚洲精品美女免费| 成人精品久久av网站| 2019中文字幕在线观看| 成人乱色短篇合集| 操人视频在线观看欧美| 激情久久av一区av二区av三区| 亚洲视频网站在线观看| 日韩三级成人av网| 亚洲一区二区三区sesese| 亚洲欧美在线播放| 国产精品大片wwwwww| 欧美精品在线视频观看| 91色琪琪电影亚洲精品久久| 国产精品av电影| 日韩精品在线私人| 国产精品免费小视频| 91成品人片a无限观看| 亚洲激情自拍图| 日韩av影视在线| 日韩有码视频在线| 91沈先生作品| 日韩成人av网址| 国产精品免费视频xxxx| 国产成人免费91av在线| 久久av.com| 精品magnet| 日本免费久久高清视频| 91久久久在线| 国产免费一区视频观看免费| 久久免费观看视频| 欧美亚洲在线视频| 国产精品99久久久久久久久久久久| 伊是香蕉大人久久| 91国产精品91| 亚洲日本中文字幕免费在线不卡| 久久精品电影一区二区| 欧美精品一本久久男人的天堂| 色爱av美腿丝袜综合粉嫩av| 亚洲精品日韩欧美| 日韩欧美国产一区二区| 亚洲女人天堂色在线7777| 亚洲国产成人精品久久久国产成人一区| 成人精品一区二区三区电影黑人| 黑人狂躁日本妞一区二区三区| 97超级碰碰碰久久久| 91av在线视频观看| 欧美日韩第一页| 欧美视频中文在线看| 久久最新资源网| 欧美午夜电影在线| 欧美中文字幕在线| 久久久电影免费观看完整版| 日韩免费在线视频| 国产精品6699| 超碰97人人做人人爱少妇| 午夜精品一区二区三区在线视| 日本成人精品在线| 国产精品va在线播放我和闺蜜| 欧美激情喷水视频| 欧美激情在线播放| 高清日韩电视剧大全免费播放在线观看| 91色p视频在线| 亚洲精品国产电影| 日韩美女视频在线观看| 欧美一级片一区| 中文字幕免费精品一区高清| 日本中文字幕久久看| 欧美激情一区二区三区久久久| 精品国产一区二区三区久久| 国产精品香蕉国产| 午夜精品三级视频福利| 国内伊人久久久久久网站视频| 一本色道久久88综合亚洲精品ⅰ| 国产精品一区二区性色av| 欧美在线性爱视频| 久久久人成影片一区二区三区| 国产91在线播放九色快色| 久99九色视频在线观看| 国产日韩中文在线| 亚洲精品456在线播放狼人| 久久久久久69| 91在线免费看网站| 国产精选久久久久久| 中文字幕不卡在线视频极品| 久久久在线观看| 日韩av中文字幕在线| 国产激情视频一区| 狠狠躁夜夜躁久久躁别揉| 欧美性20hd另类| 一区二区在线视频播放| 国产精品九九久久久久久久| 中文字幕一精品亚洲无线一区| 成人免费在线网址| 久久久97精品| 中文字幕日韩精品在线观看| 韩国19禁主播vip福利视频| 中文字幕精品在线视频| 国产在线一区二区三区| 久久久女女女女999久久| 欧美成人自拍视频| 欧美怡春院一区二区三区| 国产精品日韩欧美大师| 两个人的视频www国产精品| 午夜精品一区二区三区在线| 日韩av免费在线看| 秋霞av国产精品一区| 91av在线精品| 日韩欧美大尺度| 久久久久久久999精品视频| 精品亚洲一区二区三区四区五区| 91禁国产网站| 日韩精品视频在线| 欧美日韩一区二区在线| 亚洲欧美变态国产另类| 亚洲久久久久久久久久久| 91av免费观看91av精品在线| 亚洲综合中文字幕68页| 国产98色在线| 久久6精品影院| 亚洲摸下面视频| 日韩毛片在线看| 欧美激情综合色| 国产性猛交xxxx免费看久久| 插插插亚洲综合网| 亚洲专区在线视频| 精品国偷自产在线视频| 亚洲欧美日韩在线高清直播| 亚洲男人天堂2019| www.亚洲成人| 国产一区红桃视频| 久久精品一区中文字幕| 欧美人在线视频| 九九精品视频在线| 亚洲欧美中文在线视频| 91美女福利视频高清| 国产精品久久久久久久久久99| 亚洲色图17p| 国产拍精品一二三| 国产欧美va欧美va香蕉在线| 日韩在线不卡视频| 日韩精品在线影院| 久久视频免费在线播放| 日本久久久久久久久| 国产成人avxxxxx在线看| 国产精品爽爽爽| 热re91久久精品国99热蜜臀|