MySQLはオープンソースのリレーショナルデータベース管理システム(DBMS)であり、さまざまなコンテキストで頻繁に展開されます。ほとんどの場合、LAMPスタックの一部としてデプロイされます。データベースシステムはまた、使いやすく、移植性が高く、多くのアプリケーションのコンテキストでは、非常に効率的です。 MySQLは多くの場合、大量のミッションクリティカルなデータの集中データストアであるため、MySQLデータベースの定期的なバックアップを作成することは、システム管理者が実行できる最も重要なディザスタリカバリタスクの1つです。このガイドでは、データベースのバックアップを作成したり、バックアップからデータベースを復元したりするためのさまざまな方法について説明します。
インストールプロセスを開始する前に、コンピューティングインスタンスのセットアップとセキュリティ保護で概説されている手順に従っていることを前提としています。さらに、MySQLデータベースをインストールする必要があります。すべての構成はターミナルセッションで実行されます。 SSH経由でrootとしてLinodeにログインしていることを確認してください。 Linuxサーバーの管理に慣れていない場合は、Linuxの概念ガイド、初心者向けガイド、および管理の基本ガイドの概要に興味があるかもしれません。
バックアップ方法
このガイドのMySQLデータベースのほとんどのバックアップは、mysqldumpを使用して実行されます。 デフォルトのMySQLサーバーインストールで配布されるツール。 mysqldumpを使用することをお勧めします データベースのバックアップを取る最も簡単で効率的な方法であることが多いため、可能な限りいつでも。このガイドで詳しく説明されている他の方法は、mysqldumpにアクセスできない状況のために提供されています。 ツール、Finnixのようなリカバリ環境、またはMySQLサーバーのローカルインスタンスが起動しない状況など。
それにもかかわらず、このガイドはmysqldumpの単なる概要を提供します mysqldumpには多くのオプションと使用法があるため、ツール これは、このドキュメントの範囲を超えています。このドキュメントで説明されているすべての手順に精通し、mysqldumpの調査を継続することをお勧めします。 ここで説明するケースを超えて。次の点に注意してください:
*.sqlmysqldumpで作成されたファイル いつでも復元できます。データベースの.sqlを編集することもできます お気に入りのテキストエディタを使用して手動で(細心の注意を払って!)ファイルを作成します。- データベースがMyISAMストレージエンジンのみを使用している場合は、
mysqldumpに置き換えることができます。 より高速なmysqlhotcopyを使用したコマンド 。
データベース管理システム全体(DBMS)のバックアップの作成
多くの場合、ユーザー、権限、およびパスワードを保持するシステムデータベースを含む、すべてのデータベースとテーブルとともに、データベース管理システム全体のバックアップ(または「ダンプ」)を行う必要があります。
オプション1:mysqldumpユーティリティを使用してデータベース管理システム全体のバックアップを作成する
>
MySQLデータベース管理システム全体の単一のコヒーレントバックアップを作成するための最も簡単な方法は、mysqldumpを使用します。 コマンドラインからのユーティリティ。現在のタイムスタンプでデータベースダンプを作成するための構文は次のとおりです。
mysqldump --all-databases > dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql -u root -p
このコマンドは、現在のディレクトリでデータベースのバックアップを開始する前に、パスワードの入力を求めるプロンプトを表示します。このプロセスには、データベースのサイズに応じて、数秒から数時間かかる場合があります。
crontabに行を追加して、このプロセスを自動化します :
0 1 * * * /usr/bin/mysqldump --all-databases > dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql -u root -pPASSWORD
上記の例では、which mysqldumpを使用します コマンドへの正しいパスを確認し、rootを置き換えます バックアップを実行するmysqlユーザー、およびPASSWORD そのユーザーの正しいパスワードを使用します。
注 crontabの例では、-Pフラグとパスワードエントリの間にスペースがないことを確認してください。
オプション2:MySQLデータディレクトリのコピーを使用してDBMS全体のバックアップを作成する
mysqldump ツールが推奨されるバックアップ方法です。別のアプローチが必要な場合がいくつかあります。 mysqldump データベースサーバーにアクセスして実行している場合にのみ機能します。データベースを起動できない場合、またはホストシステムにアクセスできない場合は、MySQLのデータベースを直接コピーできます。この方法は、システムのディスクがそのファイルシステムにマウントされているFinnixなどのリカバリ環境にしかアクセスできない状況で必要になることがよくあります。システム自体でこの方法を試す場合は、データベースがないことを確認してください。 ランニング。次のようなコマンドを発行します。
/etc/init.d/mysqld stop
ほとんどのディストリビューションのバージョンのMySQLでは、データディレクトリは/var/lib/mysql/にあります。 ディレクトリ。このディレクトリが存在しない場合は、/etc/mysql/my.cnfを調べてください。 データディレクトリへのパスのファイル。または、次のコマンドを発行して、ファイルシステムでデータディレクトリを検索することもできます。
find / -name mysql
MySQLデータディレクトリを見つけたら、それをバックアップ場所にコピーできます。次の例では、MySQLデータディレクトリが/var/lib/mysql/にあると想定しています。 :
cp -R /var/lib/mysql/* /opt/database/backup-1266871069/
この場合、データディレクトリの内容を再帰的にコピーしました(例:/var/lib/mysql/ )/opt/内のディレクトリに 階層(例:/opt/database/backup-1266871069/ )。このディレクトリは、コピー操作を開始する前に存在している必要があります。次の一連の操作を検討してください。
/etc/init.d/mysql stop
mkdir -p /opt/database/backup-1266872202/
cp -R /var/lib/mysql/* /opt/database/backup-1266872202/
これらのコマンドは、MySQLサーバーデーモンを停止してから、/opt/database/backup-1266872202/という名前のディレクトリを作成することから始まります。 、およびデータディレクトリの再帰コピーを実行します。 backup-[time_t]を使用することを選択したことに注意してください 例の命名規則。上記のパスを、希望する組織と命名スキームに置き換えてください。 cp コマンドは出力を生成せず、データベースのサイズによっては完了するまでに時間がかかる場合があります。完了するまでに時間がかかっても心配しないでください。コピー操作が終了したら、データディレクトリを「tar」アーカイブにアーカイブして、マシン間の管理と移動を容易にすることができます。次のコマンドを発行して、アーカイブを作成します。
cd /opt/database/backup-1266872202
tar -czfv * > /opt/mysqlBackup-1266872202.tar.gz
tarballが作成されると、最も便利な方法でファイルを簡単に転送できます。必要に応じて、MySQLサーバーデーモンを再起動することを忘れないでください:
/etc/init.d/mysql start
単一データベースのバックアップの作成
多くの場合、データベースサーバー全体のバックアップを作成する必要はありません。 Webアプリケーションのアップグレードなどの場合、アップグレードがデータベースに悪影響を与える場合に備えて、インストーラーはデータベースのバックアップを作成することを推奨する場合があります。同様に、特定のデータベースの「ダンプ」を作成してそのデータベースを別のサーバーに移動する場合は、次の方法を検討してください。
可能であれば、mysqldumpを使用してください 単一のデータベースの「ダンプ」をエクスポートするためのツール。このコマンドは次のようになります。
mysqldump -u username -ps3cr1t -h localhost danceLeaders > 1266861650-danceLeaders.sql
上記の例は、--all-databasesを使用するのではなく、前のセクションの例と似ています。 オプションの場合、この例では特定のデータベース名を指定します。この場合、danceLeadersのバックアップを作成します データベース。このコマンドの形式は、よりわかりやすい表記で次のとおりです。
mysqldump -u [username] -p[password] -h [host] [databaseName] > [backup-name].sql
追加の例として、customerという名前のデータベースをバックアップします。 次のコマンドを発行して、ルートデータベースアカウントを使用します。
mysqldump -u root -p -h localhost customer > customerBackup.sql
mysqldumpの前にパスワードの入力を求められます バックアッププロセスを開始します。いつものように、バックアップファイル、この場合はcustomerBackup.sql は、このコマンドを発行したディレクトリに作成されます。 mysqldump コマンドは、データベースのサイズとバックアップ実行時のホストの負荷に応じて、数秒または数時間で完了します。
単一テーブルのバックアップの作成
オプション1:mysqldumpユーティリティを使用して単一テーブルのバックアップを作成する
この操作は、以前のmysqldumpの使用と同様です。 このドキュメントのユーティリティを使用すると、単一のデータベーステーブルのバックアップを作成できます。前の例を続けると、次の例でテーブルusernameRecordsをバックアップできます。 danceLeadersで データベース。
mysqldump -u username -ps3cr1t -h localhost danceLeaders usernameRecords \> 1266861650-danceLeaders-usernameRecords.sql
上記の例は前のセクションの例と似ていますが、バックアップするテーブルの名前を指定するためのテーブル名の指定をコマンドに追加した点が異なります。よりわかりやすい表記でのこのコマンドの形式は次のとおりです。
mysqldump -u [username] -p[password] -h [host] [databaseName] [tableName] > [backup-name].sql
追加の例として、customerという名前のデータベースから「order」という名前のテーブルをバックアップします。 次のコマンドを発行して、ルートデータベースアカウントを使用します。
mysqldump -u root -p -h localhost customer order > customerBackup-order.sql
mysqldumpの前にパスワードの入力を求められます バックアッププロセスを開始します。いつものように、バックアップファイル(この場合はcustomerBackup.sql )は、このコマンドを発行したディレクトリに作成されます。 mysqldump コマンドは、データベースのサイズとバックアップ実行時のホストの負荷に応じて、数秒または数時間で完了します。
オプション2:MySQLクライアントを使用して単一テーブルのバックアップを作成し、 OUTFILEステートメント
MySQLクライアント自体にはいくつかのバックアップ機能があります。すでにログインしていて、現在のセッションを終了したくない場合に便利です。ライブシステムを使用していて、ダウンタイムを許容できない場合は、バックアップしているテーブルを一時的にロックすることを検討する必要があります。
MySQLクライアントを使用して単一のテーブルをバックアップする場合、そのテーブルの構造はバックアップで維持されないことに注意してください。この方法を使用すると、データ自体のみが保存されます。
-
始める前に、
LOCK TABLESを実行することをお勧めします バックアップするテーブルで、FLUSH TABLESが続きます バックアップ操作中にデータベースが一貫したスペースにあることを確認します。必要なのは読み取りロックだけです。これにより、MySQLデータディレクトリ内のファイルのコピーを作成している間、他のクライアントがテーブルのクエリを続行できます。 「読み取り」ロックの場合、LOCK TABLESの構文 次のようになります:1LOCK TABLES tableName READ;LOCK TABLESを実行するにはordercustomerのテーブル データベースで、次のコマンドを発行します:mysql -u root -p -h localhost次に、rootパスワードの入力を求められます。データベースのクレデンシャルを入力すると、mysqlクライアントプロンプトが表示されます。次のコマンドを発行して、
orderをロックしますcustomerのテーブル データベース(末尾の;MySQLコマンドには必要です):1 2 3USE customer; LOCK TABLES order READ; FLUSH TABLES; -
これで、バックアップ操作を開始できます。 MySQLクライアントを使用して単一のテーブルのバックアップを作成するには、MySQLDBMSにログインする必要があります。現在ログインしていない場合は、次のコマンドでログインできます。
mysql -u root -p -h localhostパスワードの入力を求められます。正しいパスワードを入力してMySQLクライアントプロンプトが表示されたら、
SELECT * INTO OUTFILEを使用できます。 声明。このステートメントの構文は次のようになります。1SELECT * INTO OUTFILE 'file_name' FROM tbl_name;この例では、
orderからのデータのバックアップを作成しますcustomerのテーブル データベース。次のコマンドを発行して、バックアップ手順を開始します(末尾の;MySQLコマンドには必要です):1 2 3 4 5USE customer; LOCK TABLES order READ; FLUSH TABLES; SELECT * INTO OUTFILE 'customerOrderBackup.sql' FROM order; UNLOCK TABLES;customerOrderBackup.sqlファイルは、MySQLデータディレクトリ内の適切なデータサブディレクトリに作成されます。 MySQLデータディレクトリは通常/var/lib/mysql/です。 。この例では、OUTFILE/var/lib/mysql/customer/customerOrderBackup.sqlになります 。ただし、このディレクトリとファイルの場所は、Linuxディストリビューションによって異なる場合があります。バックアップファイルが見つからない場合は、次のコマンドで検索できます。find / -name customerOrderBackup.sql -
バックアップ操作が完了したら、MySQLクライアントで次のコマンドを使用してテーブルのロックを解除する必要があります。これにより、データベースが通常の操作に戻ります。現在ログインしていない場合は、最初のコマンドでMySQLクライアントにログインしてから、2番目のコマンドを発行します。
mysql -uroot -p -h localhost1UNLOCK TABLES;
この時点から、通常どおりデータベースを使用できます。
効果的なバックアップ戦略に関する考慮事項
MySQLデータベースのバックアップの作成は、定期的かつスケジュールされたタスクである必要があります。 cronを使用して定期的なバックアップをスケジュールすることを検討してください。 、mysqldump および/またはmail 。 cronに関する詳細については、ドキュメントを参照してください。自動バックアップソリューションを実装すると、災害復旧状況でのダウンタイムを最小限に抑えることができます。
データベースをバックアップするときにrootとしてログインする必要はありません。読み取りを行うMySQLユーザー(例:SELECT )権限は両方のmysqldumpを使用できます およびmysql 以下に説明するように、バックアップを取るためのツール(例:MySQLクライアント)。一般的な慣例として、MySQL rootを使用しないことをお勧めします セキュリティリスクを最小限に抑えるために、可能な限りユーザー。
長期データベースバックアップ計画の一部として、増分バックアップを検討することをお勧めします。このプロセスについてはここでは説明しませんが、詳細については、MySQLデータベースバックアップメソッドのリソースを検討することをお勧めします。
バックアップからDBMS全体を復元する
復元できないバックアップの価値は最小限です。バックアップからの復元が必要になった場合にバックアップを復元できることを確認するために、バックアップを定期的にテストすることをお勧めします。 MySQLデータベースのバックアップの復元を使用する場合、使用する方法は、問題のバックアップの作成に使用した方法によって異なります。
オプション1:MySQLクライアントとmysqldumpによって作成されたバックアップを使用したDBMS全体の復元
復元プロセスを開始する前に、このセクションでは、システムが既存のデータベースやテーブルなしで新しくインストールされたバージョンのMySQLを実行していることを前提としています。 MySQL DBMSにデータベースとテーブルがすでにある場合は、このプロセスが現在のMySQLデータを上書きするため、先に進む前にバックアップを作成してください。
mysqlを使用すると、DBMS全体を簡単に復元できます。 指図。この構文は次のようになります。
mysql -u [username] -p [password] < backupFile.sql
この場合、DBMS全体を復元するだけです。コマンドは次のようになります。
mysql -u root -p < 1266861650-backup-all.sql
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報が提供されると、復元プロセスが開始されます。このプロセスではDBMS全体が復元されるため、数秒から数時間かかる場合があります。
オプション2:から直接コピーされたMySQLデータファイルを使用してDBMS全体を復元するMySQLのデータディレクトリ
復元プロセスを開始する前に、このセクションでは、システムが既存のデータベースやテーブルなしで新しくインストールされたバージョンのMySQLを実行していることを前提としています。 MySQL DBMSにデータベースとテーブルがすでにある場合は、このプロセスが現在のMySQLデータを上書きするため、先に進む前にバックアップを作成してください。
-
MySQLデータディレクトリ(通常は
/var/lib/mysql)の完全バックアップがある場合 )、コマンドラインから復元できます。復元を成功させるには、最初にMySQLサーバーデーモンを停止し、MySQLデータディレクトリ内の現在のデータを削除する必要があります。/etc/init.d/mysql stop rm -R /var/lib/mysql/* -
次の例では、MySQLデータディレクトリのバックアップは
/opt/database/backup-1266872202にあります。 ディレクトリ。 DBMSデータディレクトリのバックアップ時にデータディレクトリのtarballを作成した場合は、次のコマンドを使用してコピーする前に、tarballからファイルを抽出する必要があります。cp mysqlBackup-1266872202.tar.gz /var/lib/mysql/ cd /var/lib/mysql tar xzvf mysqlBackup-1266872202.tar.gz -
MySQLデータベースプロセスを再起動する前に、
/var/lib/mysql/で権限が正しく設定されていることを確認する必要があります ディレクトリ。この例では、MySQLサーバーデーモンがユーザーmysqlとして実行されていると想定しています。 グループmysqlで 。データディレクトリの権限を変更するには、次のコマンドを発行します。chown -R mysql:mysql /var/lib/mysql -
mysql:mysqlを変更します MySQLインスタンスが異なるユーザーおよびグループの権限で実行されている場合は、このコマンドの一部。この引数の形式は[user]:[group]です。 。最後に、次のコマンドでMySQLサーバーデーモンを起動できます。/etc/init.d/mysql start次のようなエラーが発生した場合:
/usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'古い
debian-sys-maintを見つける必要があります/etc/mysql/debian.cnfにあるユーザーのパスワード 次に、新しいdebian-sys-maintを変更します それに対するユーザーのパスワード。catを使用して古いパスワードを表示できます :cat /etc/mysql/debian.cnf | grep passwordパスワードをコピー(または覚えて)します。次に、新しい
debian-sys-maintを変更する必要があります ユーザーのパスワード。これを行うには、MySQL rootユーザーとしてログインし、次のコマンドを発行します(ここで、は古い debian-sys-maintのパスワードです。 ユーザー):1GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION; -
次に、次のコマンドを使用してMySQLを再起動する必要があります。
/etc/init.d/mysql restart
MySQLサーバーが正常に起動したら、MySQL DBMSをテストし、すべてのデータベースとテーブルが正しく復元されていることを確認する必要があります。また、潜在的なエラーについてログを監査することをお勧めします。場合によっては、データベースエラーがあってもMySQLが正常に起動することがあります。
バックアップからの単一データベースの復元
1つのデータベースのバックアップのみを作成した場合、または1つのデータベースのみを復元する必要がある場合は、復元プロセスが多少異なります。
復元プロセスを開始する前に、このセクションでは、システムが既存のデータベースやテーブルなしで新しくインストールされたバージョンのMySQLを実行していることを前提としています。 MySQL DBMSにデータベースとテーブルがすでにある場合は、このプロセスが現在のMySQLデータを上書きするため、先に進む前にバックアップを作成してください。
-
mysqlを使用して単一のデータベースを復元するには コマンド、最初に宛先データベースを準備します。 MySQLクライアントを使用して(新しい)MySQLデータベースサーバーにログインします:mysql -u root -p -h localhost -
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報を提供したら、宛先データベースを作成する必要があります。この場合、
customerデータベースが復元されます:1CREATE DATABASE customer; -
すべてのMySQLステートメントと同様に、最後のセミコロンを省略しないでください(例:
;)各コマンドの終了時。デプロイメントによっては、新しいMySQLユーザーを作成するか、新しく作成されたデータベースにアクセスできる以前のユーザーを再作成する必要がある場合があります。新しいMySQLユーザーを作成するためのコマンドは、次の形式を取ります。1CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]'; -
次の例では、
customeradminという名前のユーザーを作成します :1CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t'; -
次に、
customeradminを指定しますcustomerにアクセスするための特権 データベース。特定のユーザーのデータベースに特権を付与するためのコマンドは、次の形式を取ります。1GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]' -
次の例では、
customeradminを指定します。customerへのフルアクセス データベース。 MySQLクライアントで次のコマンドを発行します。1GRANT ALL ON customer.* TO 'customeradmin'@'localhost'; -
展開の要求に応じて、異なるアクセス許可を指定する必要がある場合があります。 MySQLのGRANTステートメントについては、公式ドキュメントを参照してください。宛先データベースとMySQLユーザーが作成されたら、次のコマンドを使用してMySQLクライアントを閉じることができます。
quit -
これで、
mysqlを使用できます SQLファイルを復元するコマンド。このコマンドの形式は次のようになります。mysql -u [username] -p[password] -h [host] [databaseName] < [filename].sql
次の例では、customerを復元します customerBackup.sqlという名前のSQLバックアップファイルからのデータベース (<に特に注意してください このコマンドの記号):
mysql -u root -p -h localhost customer < customerBackup.sql
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報が提供されると、復元プロセスが開始されます。この操作の期間は、システムの負荷と復元するデータベースのサイズによって異なります。数秒で完了する場合もあれば、数時間かかる場合もあります。
バックアップからの単一テーブルの復元
オプション1:MySQLとmysqldumpによって作成されたバックアップを使用した単一テーブルの復元
>-
復元プロセスを開始する前に、MySQLインスタンスには、復元するテーブルを受け取ることができる既存のデータベースがすでに存在していると想定しています。 MySQLインスタンスに必要なデータベースがない場合は、続行する前にデータベースを作成する必要があります。まず、次のコマンドを使用してMySQLインスタンスにログインします。
mysql -u root -p -h localhost -
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報を提供したら、宛先データベースを作成する必要があります。この例では、
customerを作成します。 データベース。1CREATE DATABASE customer;次に、
mysqlを終了します プロンプト:quit必要なデータベースがすでにある場合は、上記の手順を安全にスキップできます。テーブルの復元を続行するには、次の形式でコマンドを発行します。
mysql -u [username] -p[password] -h [host] [databaseName] < [filename].sql -
次の例では、
orderを復元します 既存のcustomerへのテーブルcustomerOrderBackup.sqlという名前のSQLバックアップファイルからのデータベース 。<の使用には十分注意してください 次のコマンドの演算子:mysql -u root -p -h localhost customer < customerOrderBackup.sql
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報が提供されると、復元プロセスが開始されます。この操作の期間は、システムの負荷と復元するテーブルのサイズによって異なります。数秒で完了する場合もあれば、数時間かかる場合もあります。
オプション2:を使用した単一テーブルの復元MySQLクライアントとOUTFILEで作成されたバックアップのINFILEステートメント
-
復元プロセスを開始する前に、MySQLインスタンスには、復元するテーブルを受け取ることができる既存のデータベースがすでに存在していると想定しています。 MySQLインスタンスに必要なデータベースがない場合は、続行する前にデータベースを作成する必要があります。まず、次のコマンドを使用してMySQLインスタンスにログインします。
mysql -u root -p -h localhost -
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報を提供したら、宛先データベースを作成する必要があります。この例では、
customerを作成します。 データベース。1CREATE DATABASE customer;次に、
mysqlを終了します プロンプト:quit -
この場合に使用されるデータバックアップは、
SELECT * INTO OUTFILE 'backupFile.sql' FROM tableNameを使用して作成されました。 指図。このタイプのバックアップはデータ自体のみを保持するため、テーブル構造を再作成する必要があります。 MySQLクライアント内から単一のテーブルを復元するには、最初に宛先データベースとテーブルを準備する必要があります。 MySQLクライアントを使用して(新しい)MySQLインスタンスにログインします:mysql -u root -p -h localhost -
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報が提供されたら、宛先データベースを作成する必要があります。この場合、
customerを作成します データベース。次のステートメントを発行します:1CREATE DATABASE customer; -
セミコロン(例:
;)を覚えておいてください )各ステートメントの後には必須です。次に、正しい構造で宛先テーブルを作成する必要があります。テーブルのフィールドのデータ型は、バックアップが作成されたテーブルのデータ型を反映している必要があります。この例では、orderを復元しますcustomerのテーブル データベース。orderには2つのフィールドがあります テーブル、custNumデータ型INTおよびorderNameデータ型VARCHAR(20);テーブルの構造は異なります:1 2USE customer; CREATE TABLE order (custNum INT, orderName VARCHAR(20)); -
デプロイメントによっては、新しいMySQLユーザーを作成するか、新しく作成されたデータベースにアクセスできる以前のユーザーを再作成する必要がある場合があります。新しいMySQLユーザーを作成するためのコマンドは、次の形式を取ります。
1CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]'; -
次の例では、
customeradminという名前のユーザーを作成します :1CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t'; -
次に、
customeradminを指定しますcustomerにアクセスするための特権 データベース。特定のユーザーのデータベースに特権を付与するためのコマンドは、次の形式を取ります。1GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]'次の例では、
customeradminを指定します。customerへのフルアクセス データベース。 MySQLクライアントで次のコマンドを発行します。1GRANT ALL ON customer.* TO 'customeradmin'@'localhost'; -
展開の要求に応じて、異なるアクセス許可を指定する必要がある場合があります。 MySQLのGRANTステートメントについては、公式ドキュメントを参照してください。テーブルとユーザーが作成されたら、
LOAD DATAを使用してバックアップファイルからバックアップデータをインポートできます。 指図。構文は次のようになります。1LOAD DATA INFILE '[filename]' INTO TABLE [tableName];次の例では、
customerOrderBackup.sqlという名前のファイルからテーブルからデータを復元します。 。 MySQLクライアントにINFILEの後にパスとファイル名が指定されている場合 、MySQLデータディレクトリでそのファイルを探します。ファイル名がcustomerOrderBackup.sqlの場合 指定された場合、パスは/var/lib/mysql/customerOrderBackup.sqlになります。 。特にMySQLがFile not foundを生成する場合は、復元しようとしているファイルが存在することを確認してください。 エラー。 -
customerOrderBackup.sqlからデータをインポートするには/var/lib/mysql/にあるファイル , issue the following command:1LOAD DATA INFILE 'customerOrderBackup.sql' INTO TABLE order;This process can take anywhere from a few seconds to many hours depending on the size of your table. The duration of this operation depends on your system’s load and the size of the table that you are restoring. It may complete in a few seconds, or it may take many hours. After you have verified that your data was imported successfully, you can log out:
quit
詳細情報
このトピックの詳細については、次のリソースを参照してください。これらは有用であることを期待して提供されていますが、外部でホストされている資料の正確性や適時性を保証することはできません。
- The Official MySQL Web Site
- MySQL Database Backup Methods page
- mysqldump Manual Page
- Schedule Tasks With Cron
- MySQL’s Grant Statement, Official Documentation