MySQLデータエクスポートインポート
4819 ワード
MySQLベース
MySQLデータエクスポートインポートに関する記事の目的は2つあります.
1.メモ
2.開発者のテスト用
ツール
mysqlmysqldump
適用例
エクスポートライブラリ全体をローカルにバックアップするディレクトリをエクスポート
指定されたライブラリをローカルのディレクトリ(mysqlライブラリなど)にエクスポート
ライブラリのテーブルをローカルディレクトリ(mysqlライブラリのuserテーブルなど)にエクスポート
指定されたライブラリのテーブル(データのみ)をローカルのディレクトリ(mysqlライブラリのuserテーブルなど、フィルタ条件付き)にエクスポートします.
ライブラリのすべてのテーブル構造をエクスポート
は、クエリsqlのデータがtxt形式のファイルからローカルディレクトリ(各データ値間をタブで区切る)にエクスポートする、例えばsqlが'select user,host,password from mysqlである.user;'
クエリsqlのデータをtxt形式のファイルとしてMySQLサーバにエクスポートする.MySQLにログインし、デフォルトのタブをカンマに変更します.(csv形式のファイルに適応する).指定したパス、mysqlには書く権限があります.tmpディレクトリを使って、ファイルが使い終わったら、削除したほうがいいです.
インポートは、mysqlライブラリの権限テーブルが含まれているため、インポートが完了するにはFLUSH PRIVILEGESを実行する必要があります.コマンド#コマンド#
あるライブラリのデータを復元する(mysqlライブラリのuserテーブル)
MySQLサーバ上のtxt形式のファイルを復元します(FILE権限が必要で、各データ値の間は「タブ」で区切られています)
MySQLサーバ上のcsv形式のファイルを復元します(FILE権限が必要で、各データ値の間に「カンマ」で区切られています)
ローカルtxtまたはcsvファイルをMySQLに復元
注意事項 MySQL接続について-u$USERユーザー名-p$PASWDパスワード-h 127.0.0.1リモートサーバに接続する場合は、対応するホスト名またはIPアドレスで-P 3306ポート--default-character-set=utf 8指定文字セット を置き換えます. mysqlパラメータであるskip-column-namesについてデータ列の名前-Bを表示することなくmysqlプログラムをバッチで実行する.クエリーの結果はタブ間隔フォーマットとして表示されます.-eコマンド実行後、 を終了する mysqldumpパラメータ-Aフルライブラリバックアップ--routinesバックアップストレージプロセスと関数--default-character-set=utf 8設定文字セット--lock-all-tablesグローバルコンシステンシロック--add-drop-database構築文を実行するたびに、DROP TABLE IF EXIST文--no-create-db CREATE DATABASE文を出力しない--no-create-info CREATE TABLE文を出力しない--databases後のパラメータをライブラリ名に解析する--tables最初のパラメータはライブラリ名の後にテーブル名 LOAD DATA構文LOAD DATA文にLOCALキーがない場合、MySQLのサーバ上でファイルを直接読み込み、FILE権限を持つ.LOCALキーが付いている場合は、クライアントでデータファイルをローカルに読み出し、ネットワークを介してMySQLに転送する.LOAD DATA文は、同様にbinlogに記録するが、内部のメカニズムにすぎない.
MySQLデータエクスポートインポートに関する記事の目的は2つあります.
1.メモ
2.開発者のテスト用
ツール
mysqlmysqldump
適用例
エクスポート
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases mysql > db.sql
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --tables mysql user> db.table.sql
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-create-db --no-create-info --tables mysql user --where="host='localhost'"> db.table.sql
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --no-data --databases mysql > db.nodata.sql
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 --skip-column-names -B -e 'select user,host,password from mysql.user;' > mysql_user.txt
SELECT user,host,password FROM mysql.user INTO OUTFILE '/tmp/mysql_user.csv' FIELDS TERMINATED BY ',';
インポート
:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 < db.all.sql
:
MySQL, source , .
......
mysql> source /tmp/db.all.sql;
:
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 mysql < db.table.sql
:
MySQL, source , .
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8 ...... mysql> use mysql; mysql> source /tmp/db.table.sql;
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/mysql_user.txt' INTO TABLE user ;
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
mysql> LOAD DATA INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
mysql -u$USER -p$PASSWD -h127.0.0.1 -P3306 --default-character-set=utf8
......
mysql> use mysql;
# txt
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user;
# csv
mysql> LOAD DATA LOCAL INFILE '/tmp/mysql_user.csv' INTO TABLE user FIELDS TERMINATED BY ',';
注意事項