MySQLはオープンソースのリレーショナルデータベース管理システム(DBMS)であり、さまざまなコンテキストで頻繁に展開されます。ほとんどの場合、LAMPスタックの一部としてデプロイされます。データベースシステムはまた、使いやすく、移植性が高く、多くのアプリケーションのコンテキストでは、非常に効率的です。 MySQLは多くの場合、大量のミッションクリティカルなデータの集中データストアであるため、MySQLデータベースの定期的なバックアップを作成することは、システム管理者が実行できる最も重要なディザスタリカバリタスクの1つです。このガイドでは、データベースのバックアップを作成したり、バックアップからデータベースを復元したりするためのさまざまな方法について説明します。
インストールプロセスを開始する前に、コンピューティングインスタンスのセットアップとセキュリティ保護で概説されている手順に従っていることを前提としています。さらに、MySQLデータベースをインストールする必要があります。すべての構成はターミナルセッションで実行されます。 SSH経由でrootとしてLinodeにログインしていることを確認してください。 Linuxサーバーの管理に慣れていない場合は、Linuxの概念ガイド、初心者向けガイド、および管理の基本ガイドの概要に興味があるかもしれません。
バックアップ方法
このガイドのMySQLデータベースのほとんどのバックアップは、mysqldump
を使用して実行されます。 デフォルトのMySQLサーバーインストールで配布されるツール。 mysqldump
を使用することをお勧めします データベースのバックアップを取る最も簡単で効率的な方法であることが多いため、可能な限りいつでも。このガイドで詳しく説明されている他の方法は、mysqldump
にアクセスできない状況のために提供されています。 ツール、Finnixのようなリカバリ環境、またはMySQLサーバーのローカルインスタンスが起動しない状況など。
それにもかかわらず、このガイドはmysqldump
の単なる概要を提供します mysqldump
には多くのオプションと使用法があるため、ツール これは、このドキュメントの範囲を超えています。このドキュメントで説明されているすべての手順に精通し、mysqldump
の調査を継続することをお勧めします。 ここで説明するケースを超えて。次の点に注意してください:
*.sql
mysqldump
で作成されたファイル いつでも復元できます。データベースの.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
の構文 次のようになります:1
LOCK TABLES tableName READ;
LOCK TABLES
を実行するにはorder
customer
のテーブル データベースで、次のコマンドを発行します:mysql -u root -p -h localhost
次に、rootパスワードの入力を求められます。データベースのクレデンシャルを入力すると、mysqlクライアントプロンプトが表示されます。次のコマンドを発行して、
order
をロックしますcustomer
のテーブル データベース(末尾の;
MySQLコマンドには必要です):1 2 3
USE customer; LOCK TABLES order READ; FLUSH TABLES;
-
これで、バックアップ操作を開始できます。 MySQLクライアントを使用して単一のテーブルのバックアップを作成するには、MySQLDBMSにログインする必要があります。現在ログインしていない場合は、次のコマンドでログインできます。
mysql -u root -p -h localhost
パスワードの入力を求められます。正しいパスワードを入力してMySQLクライアントプロンプトが表示されたら、
SELECT * INTO OUTFILE
を使用できます。 声明。このステートメントの構文は次のようになります。1
SELECT * INTO OUTFILE 'file_name' FROM tbl_name;
この例では、
order
からのデータのバックアップを作成しますcustomer
のテーブル データベース。次のコマンドを発行して、バックアップ手順を開始します(末尾の;
MySQLコマンドには必要です):1 2 3 4 5
USE 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 localhost
1
UNLOCK 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
のパスワードです。 ユーザー):1
GRANT 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
データベースが復元されます:1
CREATE DATABASE customer;
-
すべてのMySQLステートメントと同様に、最後のセミコロンを省略しないでください(例:
;
)各コマンドの終了時。デプロイメントによっては、新しいMySQLユーザーを作成するか、新しく作成されたデータベースにアクセスできる以前のユーザーを再作成する必要がある場合があります。新しいMySQLユーザーを作成するためのコマンドは、次の形式を取ります。1
CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]';
-
次の例では、
customeradmin
という名前のユーザーを作成します :1
CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t';
-
次に、
customeradmin
を指定しますcustomer
にアクセスするための特権 データベース。特定のユーザーのデータベースに特権を付与するためのコマンドは、次の形式を取ります。1
GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]'
-
次の例では、
customeradmin
を指定します。customer
へのフルアクセス データベース。 MySQLクライアントで次のコマンドを発行します。1
GRANT 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
を作成します。 データベース。1
CREATE 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
を作成します。 データベース。1
CREATE DATABASE customer;
次に、
mysql
を終了します プロンプト:quit
-
この場合に使用されるデータバックアップは、
SELECT * INTO OUTFILE 'backupFile.sql' FROM tableName
を使用して作成されました。 指図。このタイプのバックアップはデータ自体のみを保持するため、テーブル構造を再作成する必要があります。 MySQLクライアント内から単一のテーブルを復元するには、最初に宛先データベースとテーブルを準備する必要があります。 MySQLクライアントを使用して(新しい)MySQLインスタンスにログインします:mysql -u root -p -h localhost
-
ルートMySQLユーザーのパスワードの入力を求められます。正しい資格情報が提供されたら、宛先データベースを作成する必要があります。この場合、
customer
を作成します データベース。次のステートメントを発行します:1
CREATE DATABASE customer;
-
セミコロン(例:
;
)を覚えておいてください )各ステートメントの後には必須です。次に、正しい構造で宛先テーブルを作成する必要があります。テーブルのフィールドのデータ型は、バックアップが作成されたテーブルのデータ型を反映している必要があります。この例では、order
を復元しますcustomer
のテーブル データベース。order
には2つのフィールドがあります テーブル、custNum
データ型INT
およびorderName
データ型VARCHAR(20)
;テーブルの構造は異なります:1 2
USE customer; CREATE TABLE order (custNum INT, orderName VARCHAR(20));
-
デプロイメントによっては、新しいMySQLユーザーを作成するか、新しく作成されたデータベースにアクセスできる以前のユーザーを再作成する必要がある場合があります。新しいMySQLユーザーを作成するためのコマンドは、次の形式を取ります。
1
CREATE USER '[username]'@'[host]' IDENTIFIED BY '[password]';
-
次の例では、
customeradmin
という名前のユーザーを作成します :1
CREATE USER 'customeradmin'@'localhost' IDENTIFIED BY 's3cr1t';
-
次に、
customeradmin
を指定しますcustomer
にアクセスするための特権 データベース。特定のユーザーのデータベースに特権を付与するためのコマンドは、次の形式を取ります。1
GRANT [privilegeType] ON [databaseName].[tableName] TO '[username]'@'[host]'
次の例では、
customeradmin
を指定します。customer
へのフルアクセス データベース。 MySQLクライアントで次のコマンドを発行します。1
GRANT ALL ON customer.* TO 'customeradmin'@'localhost';
-
展開の要求に応じて、異なるアクセス許可を指定する必要がある場合があります。 MySQLのGRANTステートメントについては、公式ドキュメントを参照してください。テーブルとユーザーが作成されたら、
LOAD DATA
を使用してバックアップファイルからバックアップデータをインポートできます。 指図。構文は次のようになります。1
LOAD 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:1
LOAD 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