發表文章

[MySQL] slave和master不同步的解決方法

今天發現MySQL的SLAVE資料庫沒有和MASTER同步,記錄下如何檢查和解決方式 注意: 以下方法將會重置mysql的複製,bin-log將會被刪除,如果要使用,可以先備份bin-log 如何檢查 1.進到SLAVE資料庫,下命令查看同步狀態 mysql >  show slave status\G 會發現 Slave_IO_Running: Yes Slave_SQL_Running: No 可以確認SLAVE是不同步的狀態 如何解決 重新做slave,使資料庫和master完全同步 在Master server的設置: 1.先進入master資料庫,進行鎖表,防止資料寫入 mysql > FLUSH TABLES WITH READ LOCK ; 2.進行數據備份 #mysqldump -uroot -p -hlocalhost > mysql.bak.sql 此命令為把資料備份到mysql.bak.sql上 3.備份後把表解鎖 mysql > UNLOCK TABLES ; 4.把mysql備份文件傳到slave機器,進行數據恢復 使用scp命令,此命令是丟到slave上的/tmp資料夾裡 # scp mysql.bak.sql root@{ip}:/tmp/ 在slave server的設置: 1.停止slave的狀態 mysql > STOP SLAVE; 2.導入數據備份 mysql > source /tmp/mysql.bak.sql 3.重新設置slave服務器 mysql > RESET SLAVE ; mysql > CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000001' , MASTER_LOG_POS = 1 ; 4.開始slave mysql > START SLAVE; 5.查看同步狀態 mysql> show slave status\G 查看: Slave_IO_Running: Yes Slave_SQL_Running: Yes 完成同步 參考來源: https://www.ho

[AWS SES] 教你 AWS SES 如何設定自訂驗證信件

圖片
情境: 我的專案有代發信件的功能,為了能夠實現代理發送,在本機裝了postfix,但信件經常被丟到垃圾信,不然就是客戶收信速度太慢,於是剛好看到AWS SES也能夠實現代理發送,只不過要先發送SES驗證信件到客戶端,驗證完才能夠由SES實現代理發送,這篇來記錄下如何設定自訂驗證信件。 步驟: 首先必須先裝好AWS CLI,因為目前AWS 編輯自訂驗證信件只能透過AWS CLI,安裝方式參考 AWS CLI安裝方式 ,就不再詳解, 但要注意的是,在配置aws configure 時˙,[region name]必須指定SES區域才能夠抓到喔! IAM也要打開SES權限 開始在SES建立自訂驗證信件 將下列這段範例,存在 C:\customverificationemail.json,路徑和名稱可以自己改 {   "TemplateName": "SampleTemplate",   "FromEmailAddress": "sender@example.com",   "TemplateSubject": "Please confirm your email address",   "TemplateContent": "<html><head></head><body style='font-family:sans-serif;'><h1 style='text-align:center'>Ready to start sending email with ProductName?</h1><p>We here at Example Corp are happy to have you on board! There's just one last step to complete before you can start sending email. Just click the following link to verify your email address. On

[office / excel] excel 2010 開啟後自動關閉 / 沒有回應

圖片
問題描述: 上週office自動更新了幾個元件(如圖),導致excel開啟會突然關閉的問題 解決辦法: 到控制台 ->  程式和功能 -> 解除安裝更新,找到 office  KB4461627 並且刪除就能正常開啟了😊 P.S  32bit 64bit都要移除KB4461627

[MYSQL] 如何壓縮、清除 MSQL BIN LOG

圖片
server使用mysql長時間下來bin log會過於肥大,今天記錄下如何壓縮、刪除mysql bin log 操作步驟: 壓縮mysql bin log 進入mysql 下指令清除bin log 1、壓縮mysql bin log  寫了一個簡單的腳本,方便壓縮bin log #!/bin/bash echo -n "壓縮mysql-binary 從幾開始" read startnum echo -n "到幾結束" read endnum index=0 while [ $startnum -le $endnum ] do         file="/var/lib/mysql/mysql-bin.0$startnum"         echo -n "$startnum"         if [ -f $file ]         then                # bin log存在就壓縮,這裡將壓縮檔放在mysql/binbackup/裡,可自行選擇                 tar zcvPf /var/lib/mysql/binbackup/mysql-bin-"$startnum".tar "$file"                 echo -n "$file 壓縮完成"                 ((index++))         else                 echo "$file is empty"         fi                          (( startnum++ )) done echo "完成 $index 個壓縮" 2、進入mysql 輸入 mysql -u username -p 3、清除bin log purge master logs to 'mysql-bin.000403'; //000403之前的都會被清空 [參考]MySQL二進位制日誌備份和恢復詳解

[GOOGLE SIGN IN] Javascript 預防WEB 使用GOOGLE登入後,WEB會自動登入

情境: 當使用GOOGLE帳號登入WEB時,如果帳號登出後不執行auth2.signOut() 將GOOGLE帳號登出,每到登入畫面google又會執行api幫你自動登入。如果有其他的第三方登入,這將會造成困擾。 解決辦法: 這裡使用Javascript語法 onbeforeunload,當 window, body, frameset 物件「被卸載之前」會先引發這個事件, 能攔截網頁離開的動作。 使用方式: window.onbeforeunload = function(e){   gapi.auth2.getAuthInstance().signOut(); }; 補充說明: onunload -當 window, body, frameset 物件「被卸載之後」才會引發這個事件。

[Docker] ls: cannot open directory .: Permission denied 解決方式

今天要將container 裡面的檔案路徑mapping到實體主機的檔案路徑 docker run -it -v /home/user1/storage:/storage centos /bin/bash 時,在container裡的storage下ls卻出現 ls: cannot open directory .: Permission denied ,以下為解決方法: 環境:Linux 解決方式: 在host和container分別查看id -Z: [root@centos-minion share]# id -Z unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@centos-minion share]# ls -ldZ /home/share drwxr-xr-x. root root unconfined_u:object_r:home_root_t:s0 /home/share The container: [root@4ccce73bed9d share]# id -Z id: --context (-Z) works only on an SELinux-enabled kernel [root@4ccce73bed9d share]# ls -ldZ /home/share drwxr-xr-x. root root unconfined_u:object_r:home_root_t:s0 /home/share 原因就出在SELinux,可以輸入 docker run -it -v /home/share:/home/share:z 或 docker run -it -v /home/share:/home/share:Z 就解決囉! 參考來源: https://github.com/moby/moby/issues/14175

[LINUX]E: Unable to locate package sudo的解决方法

圖片
今天再用docker run container 的時候,要安裝軟體,遇到了bash: sudo: command not found的錯誤,,而又沒有/etc/sudoers.d文件,就是沒有安裝sudo命令,於是輸入apt-get install sudo又遇到E: Unable to locate package sudo的錯誤 unable to locate package sudo 以下是簡單解決方式: 環境:Linux 解決方式: 只要更新apt-get就好了,執行 apt-get update 補充: 一般會出現bash: sudo: command not found有兩個原因 1、首先查看/etc/sudores.d 文件是否存在,如果不存在就代表系統沒有安裝,則輸入 apt-get install sudo 2、如果/etc/sudores.d 文件存在,表示系統已經安裝,只要配置環境即可,輸入 export PATH=/usr/local/bin 參考資料: CSDN