www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 公眾號精選 > 嵌入式微處理器
[導讀]原創(chuàng)地址:https://www.cnblogs.com/zzzynx/p/11125892.html 原創(chuàng)作者:四次元豬肉 環(huán)境準備 一個腳本自動部署master服務 另一個部署slave服務 關閉主從節(jié)點的防火墻 以及事先設置好root遠程登陸的權限。? grant all on *.* to root@'%' identified by 'root'

原創(chuàng)地址:https://www.cnblogs.com/zzzynx/p/11125892.html

原創(chuàng)作者:四次元豬肉


環(huán)境準備

一個腳本自動部署master服務 另一個部署slave服務 關閉主從節(jié)點的防火墻 以及事先設置好root遠程登陸的權限。  grant all on *.* to root@'%' identified by 'root' ;

master

    
import paramiko ssh=paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname='192.168.253.168',port=22,username='root',password='root') a="sed -i -e '12aserver_id=1' -e '13alog_bin=mysql_bin' /etc/my.cnf.d/server.cnf" b= 'systemctl restart mariadb' c='''mysql -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''' d='''mysql -uroot -proot -e "show master status" '''
當然也可以將abcd四條命令寫入一個列表,使用for語句循環(huán)出來放入下面命令執(zhí)行。
stdin,stderr,stdout=ssh.exec_command(d)    #將abcd分別執(zhí)行 res = stdout.read().decode('utf-8') + stderr.read().decode('utf-8') print(res) 運行顯示結(jié)果: sed -i -e '12aserver_id=1' -e '13alog_bin=mysql_bin' /etc/my.cnf.d/server.cnf systemctl restart mariadb mysql -uroot -p1 -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'" mysql -uroot -p1 -e "show master status" File Position Binlog_Do_DB Binlog_Ignore_DB mysql_bin.000012 887350
在linux端查看是否配置成功。
注: mysql -uroot -p1 -e   此命令可以使用paramiko模塊直接執(zhí)行sql語句。e是edit的意思。
當然,也可以使用pymsql模塊連接mysql數(shù)據(jù)庫然后利用cur游標里封裝的execute方法來執(zhí)行sql語句,但是可能在執(zhí)行給與權限的命令時會報錯,因為遠程登陸并沒有權限這么做。

slave

如下的file變量和port變量在master節(jié)點會變動,特別時重啟數(shù)據(jù)庫后。如果查看slave status,顯示:  Slave_IO_Running: No  Slave_SQL_Running: No 或者一個YES一個connecting的話,這是因為主節(jié)點的master狀態(tài)發(fā)生了變化或者兩臺主機的某一臺防火墻沒有關閉。
    
master_ip ='192.168.253.168' log_file='mysql_bin.000012' pos=887350
import paramiko ssh=paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname='192.168.253.167',port=22,username='root',password='root')
a="sed -i '12aserver_id=2' /etc/my.cnf.d/server.cnf" b='systemctl restart mariadb' c='''mysql -uroot -proot -e "CHANGE MASTER TO MASTER_HOST='%s', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s" '''%(master_ip,log_file,pos) d="mysql -uroot -proot -e 'start slave'" stdin,stderr,stdout=ssh.exec_command(d)        #將abcd分別執(zhí)行 res = stdout.read().decode('utf-8')+ stderr.read().decode('utf-8') print(res)
如果報錯:The server is not configured as slave; fix in config file or with CHANGE MASTER TO


1.原因一:配置文件沒有添加server_id=2,或者添加完沒有成功重啟。
2.原因二: mysql -uroot -p1 -e "CHANGE MASTER TO MASTER_HOST='%s', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s" ''' % (master_ip,log_file,pos)


這條命令沒有執(zhí)行成功,但注意這條命令不成功不會報錯,怎么檢測呢,可以粘貼腳本的這條命令到終端上執(zhí)行試試看能否成功。
結(jié)果顯示:
檢測:在主節(jié)點創(chuàng)建一個數(shù)據(jù)庫,并在從節(jié)點數(shù)據(jù)庫中查看是否同步上。 Master
slave

-END-




推薦閱讀



【01】我硬生生地把C代碼塞進了Python和Ruby!
【02】自己「焊」鍵盤:使用Python編寫
【03】C++ 轉(zhuǎn) Python 這三年,我都經(jīng)歷了什么?
【04】給大神鼓掌:400行Python代碼實現(xiàn)文語處理助手!
【05】使用 Python 來開發(fā) STM32F411 !



免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除

免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內(nèi)容

本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉
關閉