Linux で MySQL スケジュール タスク バックアップ データを実装する方法

Linux で MySQL スケジュール タスク バックアップ データを実装する方法

序文

バックアップは災害復旧の基礎であり、システム操作エラーやシステム障害によるデータ損失を防ぐために、アプリケーション ホストのハード ディスクまたはアレイからデータ セットの全部または一部を他のストレージ メディアにコピーするプロセスを指します。一部の Web サイトやシステムでは、データベースがすべてであるため、データベースをバックアップすることが重要です。

バックアップとは何ですか?

この例では、/mnt ディレクトリにディレクトリを作成します。必要に応じて、他のディレクトリに配置することもできます。

cd /mnt
mkdir dbback
パスワード
/mnt/dbバック

シェルスクリプトの作成

スクリプト名は、独自の仕様に応じてカスタマイズできます。

vim bcmysql.sh

エディターに入り、次のように入力します。

#!/bin/bash
mysqldump -uユーザー名 -pパスワード デモ > /mnt/dbback/demo_$(日付 +%Y%m%d_%H%M%S).sql

ファイルを圧縮する必要がある場合は、次のコマンドを入力します。

#!/bin/bash
mysqldump -uユーザー名 -pパスワード デモ | gzip > /mnt/dbback/demo_$(日付 +%Y%m%d_%H%M%S).sql.gz

特定の操作では、ユーザー名、パスワード、デモをそれぞれ対応するデータベースのユーザー名、パスワード、データベース名に置き換える必要があります。

実行権限を追加する

chmod u+x bcmysql.sh

実行権限を追加した後、このスクリプトを実行すると次の例外が発生する可能性があります。

mysqldump: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。

この問題は MySQL バージョン 5.6 以降で発生するはずであり、データベースのセキュリティを確保するために採用された保護メカニズムである可能性があります。この例で使用されている MySQL バージョンは 5.7.22 です。警告メッセージは表示されますが、データは正常にバックアップできます。

MySQL設定ファイルを変更する

上記の問題に対応して、一部のバージョンでは正常にバックアップできない可能性があります。また、スクリプトでデータベースのパスワードを設定することは推奨されません。MySQL 構成ファイルを直接変更することができます。通常、mysql 構成ファイルは /etc/my.cnf にあります。

vim /etc/my.cnf

このファイルの mysqldump に次の設定を追加します。

[mysqlダンプ]
user=バックアップユーザー名
パスワード=バックアップパスワード

対応するユーザー名とパスワードを置き換え、bcmysql.sh スクリプト内のコマンドを変更してユーザー名とパスワードのパラメータをキャンセルします。MySQL を再起動せずにスクリプトを直接実行することで、バックアップ結果を確認できます。

デモ_20181114_193425.sql

質問1

vim を使用してエクスポートされた sql ファイルの内容を表示すると、中国語の文字が文字化けしていることがわかります。この問題は 2 つの状況によって発生します。1 つ目は、データベース自体の文字セットが latain1 である場合です。この場合、文字セットを指定して、実行パラメータに次のパラメータを追加する必要があります。

--default-character-set=gbk

もちろん、utf8 の場合は gbk を utf8 に変更します。データベースの文字セットを表示するコマンドは次のとおりです。

'%char%' のような変数を表示します。 
-- クエリ結果 character_set_client utf8
文字セット接続 utf8
文字セットデータベース utf8mb4
文字セットファイルシステムバイナリ
文字セット結果 utf8
文字セットサーバー utf8
文字セットシステム utf8
文字セットディレクトリ /usr/local/mysql/share/charsets/

文字セットが正しく変更されているにもかかわらず文字化けした文字が表示される場合は、次のパラメータを追加してみてください。

--hex-blob

テーブル構造を注意深く分析します。テーブル構造に BLOB タイプが含まれている可能性があります。このパラメータの意味は、BINARY、VARBINARY、BLOB タイプのデータを 16 進形式でエクスポートすることです。変更されたコマンドは次のとおりです。

mysqldump --default-character-set=utf8 --hex-blob デモ > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql

スケジュールされたタスクの追加

crontabを検出またはインストールする

crontab コマンドを実行したときにコマンドが見つからないと報告された場合、コマンドがインストールされていないことを意味します。

# クローンタブ
-bash: crontab: コマンドが見つかりません

インストールされていない場合は、yum コマンドを使用してインストールできます。

# yum -y vixie-cron をインストールします

crontab は -h または –help コマンドをサポートしていませんが、次のコマンドを使用してインストールが成功したかどうかを確認できます。

[root@iZ2zeck5vZ ~]# crontab -help
crontab: 無効なオプション --h
crontab: 使用エラー: 認識されないオプション
使用法:
crontab [オプション] ファイル
crontab [オプション]
crontab -n [ホスト名]
オプション:
-u <ユーザー> ユーザーを定義する
-e ユーザーのcrontabを編集する
-l ユーザーのcrontabをリストする
-r ユーザーのcrontabを削除する
-i 削除前にプロンプ​​トを表示
-n <host> ユーザーのcrontabを実行するためのクラスタ内のホストを設定します
-c クラスタ内のホストを取得してユーザーのcrontabを実行する
-s selinux コンテキスト
-x <マスク> デバッグを有効にする
デフォルトの操作は、1003.2に従って置換されます。

スケジュールされたタスクの追加

上記のコマンド パラメータを通じて、crontab を変更してコマンドを実行するコマンドを確認できます。

crontab -e

crontab 編集操作ページに入り、vi や vim と同じようにその内容を編集します。次のコマンドを追加します。

*/1 * * * * /mnt/dbback/bcmysql.sh

このコマンド行は、bcmysql.sh を 1 分ごとに実行するために使用されます。 1 分待ってから、ls コマンドを使用してバックアップ ファイルが生成されたかどうかを確認します。ファイルは正常に生成できることがわかりました。もちろん、1 分ごとにバックアップする必要はないので、コマンドを次のように変更します。

0 1 * * * /mnt/dbback/bcmysql.sh

バックアップ操作は毎日午前 1 時に実行されます。

ログビュー

実行が失敗した場合は、タスク ログを表示できます。

# テール -f /var/log/cron

まとめ

これまでのところ、MySQL スケジュール タスク データ バックアップ機能の簡易バージョンが Linux に実装されています。もちろん、このバージョンをベースにディレクトリ制御や履歴削除などの拡張機能も実行できます。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL スケジュールタスク (EVENT イベント) を詳細に設定する方法
  • MySQL スケジュールタスクの実装と使用例
  • MySQLでスケジュールされたタスクを設定する方法の分析
  • mysql スケジュールタスク (イベント イベント) の詳細な説明
  • MySQL スケジュールタスク例チュートリアル
  • Linux で MySQL スケジュールタスクを実装する方法
  • MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

<<:  MySQLを使用して列内の異なる値の数をカウントする例

>>:  js を使用してネットワークカメラを呼び出し、一般的なエラーを処理します

推薦する

JavaScriptはXiaomi Mall公式サイトの完全なページ実装プロセスを模倣します

目次1. ホームページ制作1. ダウンロードアプリの制作2. ナビゲーションバーの制作3. カルーセ...

仮想マシンUbuntu 16.04がインターネットに接続できない問題の解決策

Ubuntu をインストールしたばかりですが、開いたときにネットワーク接続がありませんでした。右上隅...

MySQL 8のパスワードを忘れた場合のベストな対処法の簡単な分析

序文MySQL に精通している読者は、MySQL が非常に迅速に更新されることに気付くかもしれません...

ウェブページを作る前に、これらのいわゆる仕様を見てみましょう

この記事では、Web ページを作成する前に確認すべき、いわゆる仕様をいくつかまとめました。皆様のお役...

CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)

1. 環境整備1.MySQLインストールパス: /usr/local 2. CentOS 6.2 ...

新しく作成された MySQL ユーザーの % には localhost が含まれていますか?

通常の説明%はどのクライアントでも接続できることを意味しますlocalhostはローカルコンピュータ...

Linuxでファイルを削除してもスペースが解放されない問題の対処方法

問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...

ウェブデザイン必携ハンドブック 216 ウェブセーフカラー

Web ページ上の色の表現は、さまざまな要因によって影響を受けます。Web ページで非常に美しい配色...

Navicat で MySQL データベースのパスワードを変更する複数の方法

方法1: SET PASSWORDコマンドを使用するまずMySQLにログインします。フォーマット: ...

MySQL 5.7 でデータベースのデータ保存場所を変更する方法

MySQL データベースに保存されるデータが徐々に増加すると、元のストレージ領域がいっぱいになり、M...

nginx が動的と静的の分離を実装する方法の例

目次server1にnginxをデプロイするサーバーにlnmpを展開するノード3にhttpdをデプロ...

MySQL NULLがピットを引き起こした

比較演算子でNULLを使用する mysql> 1>NULLを選択します。 +------...

Vue で Excel ストリーム ファイルをダウンロードし、ダウンロード ファイル名を設定する方法

目次概要1. URL経由でダウンロード2. aタグのダウンロード属性とblobコンストラクタを組み合...

Python ベースの Linux システムにおける特定のプロセスのパフォーマンス監視の考え方の詳細な説明

インターネット上には Linux サーバーを監視するためのツール、コンポーネント、プログラムが多数あ...

Node.jsはMySQLデータベースの実戦記録を追加、削除、変更、チェックします

目次プロジェクトでデータベースを操作する3つのステップデータベースを操作するための具体的な手順1: ...