ホームページ > データベース > mysql チュートリアル > データベースをバックアップする SQL ステートメントとは何ですか?

データベースをバックアップする SQL ステートメントとは何ですか?

青灯夜游
リリース: 2023-01-06 11:15:14
オリジナル
23550 人が閲覧しました

データベースをバックアップするSQL文は「mysqldump」、構文形式は「mysqldump -u ユーザー名 -p データベース名 [データテーブル名...]> バックアップファイル名.sql」です。 ; このうち、「>」は、バックアップ データ テーブルの定義とデータをバックアップ ファイルに書き込むように mysqldump に指示するために使用されます。

データベースをバックアップする SQL ステートメントとは何ですか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

データベースの主な機能はデータの保存と維持であるため、データのバックアップはデータベース管理で最も一般的に使用される操作です。予期せぬデータベースのクラッシュやハードウェアの損傷によるデータ損失を防ぐために、データベース システムにはバックアップとリカバリの戦略が用意されています。

データのセキュリティを確保するための最も重要な対策の 1 つは、データベースを定期的にバックアップすることです。これにより、万が一事故が発生した場合でも損失を最小限に抑えることができます。

データベースのバックアップとは、データのエクスポートまたはテーブル ファイルのコピーによってデータベースのコピーを作成することを指します。データベースに障害が発生したり損傷したりした場合、バックアップされたデータベースがシステムにロードされ、データベースがエラー状態からバックアップ時の正しい状態に復元されます。

MySQL には、mysqldump コマンドと mysqlhotcopy スクリプトという 2 つのバックアップ方法が用意されています。 mysqlhotcopy は MyISAM テーブルでのみ使用できるため、mysqlhotcopy スクリプトは MySQL 5.7 で削除されました。

mysqldump コマンドを使用してデータベースをバックアップする

mysqldump コマンドを実行すると、データベース内のデータをバックアップできます。テキストファイルにバックアップされます。データテーブルの構造とデータは、生成されたテキスト ファイルに保存されます。

mysqldump コマンドを使用してデータベースをバックアップするための構文形式は次のとおりです。

mysqldump -u username -p dbname [tbname ...]> filename.sql
ログイン後にコピー

上記の構文パラメーターについては、次のように説明します。

  • #username : ユーザー名を示します;

  • dbname: バックアップする必要があるデータベースの名前を示します;

  • tbname: バックアップが必要なデータベース内のデータ テーブルを示します。データ テーブルは複数指定できます。このパラメータを省略すると、データベース全体がバックアップされます;

  • 右矢印 "

    >": mysqldump に定義とデータを書き込むように指示するために使用されます。バックアップ データ テーブルをバックアップ ファイルに追加します;

  • filename.sql: バックアップ ファイルの名前を示し、絶対パスをバックアップ ファイルの前に追加できます。ファイル名。データベースは通常、接尾辞 .sql が付いたファイルにバックアップされます。

注: mysqldump コマンドでバックアップされるファイルには、必ずしもサフィックス .sql が必要ではありません。他の形式でバックアップされたファイルもバックアップできます。たとえば、拡張子が .txt のファイルです。通常の状況では、接尾辞 .sql が付いたファイルをバックアップすることをお勧めします。拡張子 .sql が付いたファイルは、データベースに関連するファイルであるという第一印象を人々に与えるためです。

例:

次の例では、root ユーザーを使用して、test データベースの下の Student テーブルをバックアップします。コマンド ライン (cmd) ウィンドウを開き、バックアップ コマンドとパスワードを入力します。実行中のプロセスは次のとおりです:

C:\Windows\system32>mysqldump -uroot -p test student>C:\student.sql
Enter password: ****
ログイン後にコピー

注: mysqldump コマンドは cmd ウィンドウで実行する必要があり、MySQL にログインすることはできません。サービス。

パスワードを入力すると、MySQL はテスト データベースの下に学生データ テーブルをバックアップします。その後、指定したパスでバックアップしたファイルを表示できます。 Student.sql ファイルの内容の一部は次のとおりです。

-- MySQL dump 10.13  Distrib 5.7.29, for Win64 (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version 5.7.29-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
--此处删除了部分内容
--
-- Table structure for table `student`
--
DROP TABLE IF EXISTS `student`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `student` (
  `id` int(4) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `stuno` int(11) DEFAULT NULL,
  `age` int(4) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `student`
--
LOCK TABLES `student` WRITE;
/*!40000 ALTER TABLE `student` DISABLE KEYS */;
INSERT INTO `student` VALUES (1,'zhangsan',23,18),(2,'lisi',24,19),(3,'wangwu',25,18),(4,'zhaoliu',26,18);
/*!40000 ALTER TABLE `student` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
......
-- Dump completed on 2019-03-09 13:03:15
ログイン後にコピー
student.sql ファイルの先頭には、MySQL のバージョン、バックアップ ホスト名、およびデータベース名が記録されます。

ファイル内で、「--」で始まるコメントはすべて SQL 言語のコメントです。 「/*!40101」で始まるコメントおよびその他の形式は MySQL に関連しています。 40101 は MySQL データベースのバージョン番号で、ここでは MySQL 4.1.1 を意味します。データをリストアする際、MySQL のバージョンが 4.1.1 以降の場合、「/*!40101」から「*/」までの内容が SQL コマンドとして実行されます。 4.1.1未満の場合、「/*!40101」から「*/」までがコメントとして扱われます。 「/*!」と「*/」の内容は他のデータベースではコメントとして無視されるため、データベースの移植性が向上します。

DROP ステートメント、CREATE ステートメント、および INSERT ステートメントはすべて、データベースのリカバリ中に使用されます。「DROP TABLE IF EXISTS 'student'」ステートメントは、データベースにstudent という名前のテーブルが存在するかどうかを確認するために使用されます。 、削除します このテーブル; CREATE ステートメントは Student テーブルの作成に使用されます; INSERT ステートメントはすべてのデータの復元に使用されます。バックアップ時刻はファイルの最後に記録されます。

注: 上記のstudent.sql ファイルにはデータベースを作成するステートメントがないため、student.sql ファイル内のすべてのテーブルとレコードを既存のデータベースに復元する必要があります。データを復元する場合、CREATE TABLE ステートメントはデータベース内にテーブルを作成し、次に INSERT ステートメントを実行してテーブルにレコードを挿入します。

実行後、

C:\ に all.sql という名前のファイルが表示されます。このファイルには、すべてのデータベースに関する情報が保存されています。

関連する無料学習の推奨事項:

mysql ビデオ チュートリアル

以上がデータベースをバックアップする SQL ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート