AutoMySQLBackup 3.0在MySQL 5.7中的問題修複

来源:https://www.cnblogs.com/kerrycode/archive/2020/06/13/13112033.html
-Advertisement-
Play Games

最近一個電子看板小項目上線,由於資料庫非常小,而且數據也不太重要。因此未選擇XtraBackup備份,打算用AutoMySQLBackup來備份,結果部署後測試發現,有一些小問題是之前解決過的。有一些是MySQL 5.7版本才有的。下麵記錄一下解決過程。關於AutoMySQLBackup的基礎知識,... ...


 

最近一個電子看板小項目上線,由於資料庫非常小,而且數據也不太重要。因此未選擇XtraBackup備份,打算用AutoMySQLBackup來備份,結果部署後測試發現,有一些小問題是之前解決過的。有一些是MySQL 5.7版本才有的。下麵記錄一下解決過程。關於AutoMySQLBackup的基礎知識,參考我這篇博客MySQL備份還原——AutoMySQLBackup介紹。這裡不做詳細介紹。這裡的MySQL版本: 5.7.30

 

 

測試過程,備份日誌出現下麵告警信息:

 

###### WARNING ######
Errors reported during AutoMySQLBackup execution.. Backup failed
Error log below..
mysql: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.

 

 

 

1:解決WARNING: --ssl is deprecated and will be removed in a future version. Use --ssl-mode instead.報錯:

 

因為從MySQL 5.7.11開始,開始使用--ssl-mode參數,而拋棄/丟棄了參數--ssl,所以之前的MySQL版本不會遇到這個告警信息。關於這方面的知識,具體參考下麵官方文檔資料:

 

MySQL client programs now support an --ssl-mode option that enables you to specify the security state of the connection to the server. Permitted option values are PREFERRED (establish an encrypted connection if the server supports the capability, falling back to an unencrypted connection otherwise), DISABLED (establish an unencrypted connection), REQUIRED (establish an encrypted connection, or fail), VERFIFY_CA (like REQUIRED, but additionally verify the server certificate), VERIFY_IDENTITY (like VERIFY_CA, but additionally verify that the server certificate matches the host name to which the connection is attempted). For backward compatibility, the default is PREFERRED if --ssl-mode is not specified.

 

These clients support --ssl-mode: mysql, mysqladmin, mysqlbinlog, mysqlcheck, mysqldump, mysqlimport, mysqlshow, mysqlpump, mysqlslap, mysqltest, mysql_upgrade.

The --ssl-mode option comprises the capabilities of the client-side --ssl and --ssl-verify-server-cert options. Consequently, both of those options are now deprecated and will be removed in a future MySQL version. Use --ssl-mode=REQUIRED instead of --ssl=1 or --enable-ssl. Use --ssl-mode=DISABLED instead of --ssl=0, --skip-ssl, or --disable-ssl. Use --ssl-mode=VERIFY_IDENTITY instead of --ssl-verify-server-cert options. (The server-side --ssl option is not deprecated.)

 

For the C API, the new MYSQL_OPT_SSL_MODE option for mysql_options() corresponds to the --ssl-mode option. The MYSQL_OPT_SSL_ENFORCE and MYSQL_OPT_SSL_VERIFY_SERVER_CERT options for mysql_options() correspond to the client-side --ssl and --ssl-verify-server-cert options. They are now deprecated and will be removed in a future MySQL version. Use MYSQL_OPT_SSL_MODE with an option value of SSL_MODE_REQUIRED or SSL_MODE_VERIFY_IDENTITY instead.

 

For more information, see Command Options for Encrypted Connections, and mysql_options().

 

In consequence of this change, the minor C API version number was incremented

 

 

所以這裡有兩個解決方案,都非常簡單:

 

 

1:在配置文件裡面設置CONFIG_mysql_dump_usessl='no'後即可解決。簡單快捷,不用修改代碼

 

# Use ssl encryption with mysqldump

CONFIG_mysql_dump_usessl='no'

 

2:修改腳本automysqlbackup,具體操作,將腳本中的--ssl選項替換為--ssl-mode。治標治本。當然最正確的方法是根據MySQL版本選擇參數。

 

clip_image001

 

2:解決上面問題後,報錯的提示變為下麵這個樣子,之前這篇博客MySQL備份還原——AutoMySQLBackup介紹中介紹的方法不靈了。因為MySQL版本變化了。輸出信息變化了。之前的方法自然失靈了。世界總是變化的,很難有一成不變的事物!

 

###### WARNING ######
Errors reported during AutoMySQLBackup execution.. Backup failed
Error log below..
mysql: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.

 

修改腳本automysqlbackup(這個腳本視Linux版本不同,位置有所不同,一般位於/usr/local/bin/automysqlbackup或/usr/bin/automysqlbackup下麵),在removeIO後面加上這段代碼解決這個問題:

 

# Remove annoying warning message since MySQL 5.7
if [[ -s "$log_errfile" ]]; then
      sedtmpfile="/tmp/$(basename $0).$$.tmp"
      grep -v "mysqldump: \[Warning\] Using a password on the command line interface can be insecure." "$log_errfile" | \
      grep -v "mysql: \[Warning\] Using a password on the command line interface can be insecure."  | \
      grep -v "mysqlshow: \[Warning\] Using a password on the command line interface can be insecure."  > $sedtmpfile
      mv $sedtmpfile $log_errfile
fi

 

clip_image002

 

 

如果你能駕馭工具,自然得心應手。隨著平臺環境、版本的變化,出現的各種問題都能被你解決。如果你只是被動的使用工具,那麼遇到一點小問題,就會束手無策。工作這麼多年,感覺DBA的硬技能中的一非常重要的能力:解決問題的能力。這個能力需要不斷通過實戰鍛煉、培養、升級!

 

 

參考資料:

 

https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-11.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文章開始啰嗦兩句,寫到這裡共21篇關於redis的瑣碎知識,沒有過多的寫編程過程中redis的應用,著重寫的是redis命令、客戶端、伺服器以及生產環境搭建用到的主從、哨兵、集群實現原理,如果你真的能看的進去,相信對你在以後用到redis時會有一定的幫助。 寫到現在,redis相關的內容暫時告一段落 ...
  • 《大話資料庫》-SQL語句執行時,底層究竟做了什麼小動作? 前言 大家好,我是Taoye,試圖用玩世不恭過的態度對待生活的Coder。 現如今我們已然進入了大數據時代,無論是業內還是業外的朋友,相信都有聽說過資料庫這個名詞。數據是一個項目的精華,也扮演著為企業創造價值的重要角色,一個較為完善的公司一 ...
  • 該文章,GitHub已收錄,歡迎老闆們前來Star! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual 資料庫範式 一、什麼是資料庫範式 設計關係資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的 ...
  • 代碼潔癖狂們!看到一個類中有幾十個if-else是不是很抓狂? 設計模式學了用不上嗎?面試的時候問你,你只能回答最簡單的單例模式,問你有沒有用過反射之類的高級特性,回答也是否嗎? 這次就讓設計模式(模板方法模式+工廠模式)和反射助你消滅if-else! 真的是開發中超超超超超超有用的乾貨啊! 那個坑 ...
  • redis 的集合是無序的,集合成員是唯一的,不能重覆。用戶可以快速地對集合執行添加元素操作、移除元素操作以及檢查一個元素是否存在於集合中。這裡介紹一些常用的集合處理命令,併在 Yii 中的使用。 SADD SADD:SADD key-name item [item …]將一個或多個元素添加到集合里 ...
  • 如何查看SQL執行計劃 使用 PL/SQL 查看,具體使用方法如下: 新建 解釋計劃視窗 ,將 SQL 複製進去執行,即可顯示執行計劃。 選中 SQL 語句,點擊菜單 工具-解釋計劃 或 按快捷鍵 F5 執行計劃結果說明 表掃描 table access by index rowid 通過ROWID ...
  • 現在有如下表 id name age 1 張三 23 2 李四 34 3 張三 23 4 李四 32 需求 : 按照name和age欄位聯合去重 sql如下 select * from user group by name,age 文章轉自:https://blog.csdn.net/qq_2898 ...
  • 1.重置密碼的第一步就是跳過MySQL的密碼認證過程,方法如下: #vim /etc/my.cnf(註:windows下修改的是my.ini) 很多老鐵,在開始時設置了 MySQL 的密碼,後來一段時間沒有用 MySQL之後,密碼忘了~ QAQ,請別急,現在有以下方法解決密碼忘了的情況。 1.首先我 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...