MySQL データのインポートおよびエクスポートの方法とツールの紹介 (1) ) 翻訳文: この記事の内容は、Mark Maslakowski 著『Sams Teach Yourself MySQL in 21 Days』の一部から引用しています 英語の原文の著作権は原著者に帰属します。一部の中国語訳は若干変更されています。追加および削除; 元の本の一部が明確になりすぎたので、さらに不明瞭な点がある場合は修正してください。
翻訳者: David Euler、SCU。de_euler-david@www.yahoo.com.cn 時間: 2004/04/24 四川大学にて
1) .mysqlimport の構文紹介: mysqlimport は mysql/ にあります。 bin ディレクトリは、MySQL にデータをロード (またはインポート) するための非常に効果的なツールです。これはコマンドラインツールです。 2 つのパラメータと多数のオプションから選択できます。このツールは、指定したデータベースとテーブルにテキスト ファイルをインポートします。たとえば、ファイル Customers.txt からデータベース Meet_A_Geek のテーブル Customers にデータをインポートしたいとします。 mysqlimport Meet_A_Geek Customers.txt 注: ここで、Customers.txt はデータのインポート元のテキスト ファイルで、Meet_A_Geek は操作するテキスト ファイル。データベース内のテーブル名は Customers です。ここでのテキスト ファイルのデータ形式は、Customers テーブルのレコード形式と一致している必要があります。そうでない場合、mysqlimport コマンドはエラーになります。 テーブルの名前は、インポートされたファイルの最初のピリオド (.) の前にあるファイル文字列です。別の例: mysqlimport Meet_A_Geek Cus.to.mers.txt 次に、ファイルの内容をデータベース Meet_A_Geek Cus にインポートします。テーブル。上記の例では、2 つのパラメーターのみが使用されており、それ以上のオプションは使用されていません。mysqlimport のオプションは以下に紹介されています。
2) mysqlimport の一般的なオプションの紹介: オプション 機能 -d または --delete 新しいデータがデータテーブルにインポートされる前に、データテーブル内のすべての情報を削除します -f または --force エラーかどうかに関係なくが発生した場合、mysqlimport はデータの挿入を強制的に続行します -i または --ignore Mysqlimport は、同じ一意のキーワードを持つ行をスキップまたは無視し、インポートされたファイル内のデータは無視されます。 -l または -lock-tables は、データが挿入される前にテーブルをロックするため、データベースを更新するときにユーザーのクエリや更新が影響を受けるのを防ぎます。 -r または -replace このオプションは、-i オプションとは逆の効果があり、テーブル内の同じ一意のキーを持つレコードを置き換えます。 S-Fields-EntLOSED-by = CHAR は、テキスト ファイル内のデータ レコードをテキスト ファイルに含める方法を指定します。多くの場合、データは二重引用符番号に含められます。 デフォルトでは、データは文字で囲まれていません。 - フィールドターミネーション - =char 、オフスルー - - - - - - - までの期間までの期間までの期間が指定されています。このオプションを使用して、データ間の区切り文字を指定できます。デフォルトの区切り文字はタブ文字 (Tab) です --lines-terminated- by=str このオプションは、テキスト ファイル内の行間のデータを区切る文字列または文字を指定します。 デフォルトでは、mysqlimport は行区切り文字として改行を使用します。 単一の文字を文字列 (改行または復帰) に置き換えることを選択できます。 mysqlimport コマンドの一般的に使用されるオプションには、バージョン (バージョン) を表示する -v、パスワード (パスワード) の入力を求める -p などが含まれます。
3). 例: 区切り文字としてカンマを使用してファイルをインポートします。ファイル内の行のレコード形式は次のとおりです: "1"、"ORD89876"、"1 Dozen Roses"、"19991226" 私たちのタスクは次のとおりです。このファイルのデータは、データベース Meet_A_Geek のテーブル Orders にインポートされます。次のコマンドを使用します: bin/mysqlimport –prl –fields-enclosed-by= –fields-terminated-by=, Meet_A_Geek Orders.txt これコマンドは不快に思えますが、慣れると非常に簡単です。最初の部分 bin/mysqlimport は、実行したいコマンドが mysql/bin ディレクトリ内の mysqlimport であることをオペレーティング システムに伝えます。 p にはパスワードが必要です。これにより、データベースに変更を加える前にパスワードを入力する必要があります。これにより、テーブル内の重複する一意のキーワードを持つレコードとファイル レコードを置き換える必要があるため、操作がより安全になります。フォーム内のデータは最新ではないため、ファイル内のデータで更新する必要があるため、挿入時に l オプションを使用してデータベース内の既存のレコードを置き換えます。これにより、テーブルを更新するときにユーザーがテーブルをクエリしたり変更したりすることができなくなります
。-------------------------------------------------- ---------------------------------- MySQLから大量のデータをインポート、エクスポートするためのプログラム実装方法 http://www.cx66 .com/cxgzs/tips/00773.htm phpmyadmin のデータベースのインポートおよびエクスポート機能は非常に便利なので、誰もが使用したことがあると思います。ただし、実際のアプリケーションでは次の問題が見つかりました: 1. データベースが 6M などの特定のサイズを超える場合、エクスポートは通常は問題なく、ローカル ハードディスクに正しく保存できますが、インポートは機能しません。理由は、通常、PHP.INI では一時ファイル/アップロード ファイルのサイズ制限が 2M に設定されていますが、phpmyadmin がアップロード メソッドを使用したために失敗していました。 2. ハードディスクにエクスポートされた .SQL ファイルをインポートする場合、特定の一重引用符の問題が原因でインポートが失敗することがよくあり、mysql などのアプリケーションを使用してのみインポートできます。 データベースが 10M を超えたので、この問題を解決する必要があります。私のアイデア: エクスポート: phpmyadmin を使用してデータベース/テーブル構造を保存し、スクリプトを使用してデータベースの内容を読み取り、ファイルに保存します。 インポート: phpmyadmin を使用してデータベース/テーブル構造を復元し、スクリプトを使用してファイルを読み取り、ライブラリに保存します。
エクスポート プログラムは次のとおりです: 呼び出しメソッドは ****.php?table=tablename です この単純なプログラムは現在、一度に 1 つのテーブルを保存します。 !各行には 1 つのフィールドのデータが含まれています。 ! if($table=="")exit(); mysql_connect("localhost","name","password"); $result = mysql_query("select * from $table") "); if(mysql_num_rows($result) < = 0) exit(); echo "データからテキストへの変換を開始します... "; $handle = fopen("$table.txt","w" ); $numfields = mysql_num_fields($result); fputs($handle,$numfields."
"); for($k=0;$k { $msg = mysql_fetch_row($result); for($i=0;$i<$numfields;$i++) { $msg[$i ] = str_replace("
","&&php2000mysqlreturn&&",$msg[$i]); $msg[$i] = str_replace("
" ,"&&php2000mysqlreturn&&",$msg[$i]); fputs($handle,$msg[$i]."
"); } fputs($handle,"---------- MySQL 用 php2000 ダンプ データ プログラム V1.0 --------
"); } fclose($handle); echo "ok"; ?>
インポートされたプログラムは次のとおりです: 使い方は上記と同じです! if($table=="")exit (); mysql_connect( "ローカルホスト","名前","パスワード"); $message = file("$table.txt"); [0]); for($k=1;$k { $value=""; for ($i=$k;$i{ $tmp = str_replace( "&&php2000mysqlreturn&&","
",chop($message[$i])); $value .= "".addslashes($tmp).","; } $tmp = str_replace("&&php2000mysqlreturn&&","
",chop($message[$k+$numfields-1])); $value .= "".$tmp.""; $query = "$table 値に挿入 (".$value." )" ; echo mysql_error(); mysql_query($query); echo $k." "; } echo "ok"; ?>
使用方法と考えられる問題! 1. ファイルをインポートするとき( ) 関数には問題がある可能性があります (私の 10M データには問題ありません)。それを fopen() に変更して、一度に 1 行ずつ読み取ることができます。つまり、インポートとエクスポートには FTP 操作が必要です。つまり、エクスポート後に使用します。 ftp. データはローカル マシンに転送されます。インポートするときは、最初に ftp を使用してデータをサーバーに転送します
www.yiz.name
======= =============================== いくつかの使用例 一般的な使用例:
1. データベース全体をエクスポートします mysqldump - u ユーザー名 -p データベース名 > エクスポートされたファイル名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2. テーブルをエクスポートする mysqldump -p データベース名 テーブル名> -p smgp_apps_wcnc users> wcnc_users.sql 3. データベース構造をエクスポートします mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d no data--add-drop -table 各 create ステートメントの前にドロップ タブを追加します
http://www.bkjia.com/PHPjc/508509.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508509.html技術記事 http://qfxy.org.ru/read.php?tid=3071page=e からの抜粋 MySQL データのインポートおよびエクスポートの方法とツールの紹介 (1) 翻訳文: この記事の内容は、Sams Teach という本の一部から引用しています。 21 日で MySQL を自分自身に.. .
|