• ベストアンサー

ダンプデータのファイル名にアンダースコアがあると取

ダンプデータのファイル名にアンダースコアがあると取りこめないのですが、 そういう決まりなのでしょうか? ファイル名を変更すると(アンドースコアを外すと)、普通に取り込めます。 環境は、Windows7です

  • re999
  • お礼率61% (476/777)
  • MySQL
  • 回答数5
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.5

判らないことがあったら書籍(どれがよいのかは私も判りませんが)か下記の MySQLリファレンスを参照するのが良いかと思います。 http://dev.mysql.com/doc/refman/5.1/ja/index.html 文字列に関しての場合 http://dev.mysql.com/doc/refman/5.1/ja/string-syntax.html シングル/ダブルクオートの使い方はエスケープ文字とともに簡単ですが忘れやすい項目ですね。 ・文字列はクオートを使う ・エスケープ文字が含まれる場合はエスケープするかクオートを使う ・クオート文字が含まれる場合はクオート(シングル/ダブル)を使う と覚えておけば良いかと思います。 UNIX系でもWindowsでも同じですね。 今回の場合ですと、「MySQL 文字列」「MySQL ファイル名」「MySQL INFILE」「MySQL OUTFILE」などで検索すると多くの情報・実例がみつかりますので、検索語が適切であれば(これが難しいのですが)意外と簡単に必要な情報がみつかります。 MySQLはインストールしてないので、私も検索して勉強させていただきました。

re999
質問者

お礼

回答ありがとうございました。 色々勉強になりましたー

その他の回答 (4)

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.4

MySQLはインストールしてないので試すことができないのですが、 > ▼ダンプデータ取得 この書式でデータベース名Aには取り込めているのでしょうか。 下記ではどうなりますか。 D:/user/xampp/mysql/bin>mysqldump -u root -p データベース名A > 'hoge_piyo_mysql.dump'; > ▼ダンプデータを違うDBへ取り込む この場合は D:/user/xampp/mysql/bin>mysql -u root -p データベース名B < 'hoge_piyo_mysql.dump'; ではどうなりますか。 クオート、エスケープの使い方が混乱しているように見えるのですが。 (私の方が混乱しているのかな、試しの実行ができなくて申し訳ありません)

re999
質問者

補足

アドバイスありがとうございます。 早速試したところ、無事いけました! mysqldump -u root -p データベース名A > 'hoge_piyo_mysql.dump';で、 「'hoge_piyo_mysql.dump'」が作成され、 mysql -u root -p データベース名B < 'hoge_piyo_mysql.dump';で、 無事取り込むことができました。 ちなみに、クオートは、どういうときに使うのでしょうか? 自分的には、 mysqldump -u root -p データベース名A > hoge_piyo_mysql.dump;でも、 「hoge_piyo_mysql.dump」が作成されたので、無事ダンプデータをエクスポートできたとばかり思っていたのですが…… とりあえず、このケースでは、そういうもの、と覚えておく感じなのでしょうか? ネットを見ても、あまり、この辺りクオートが書かれているようにも見えないのですが、 それは、クオートを書くことが当然前提なので、単に省略されているだけなのでしょうか? 後、この現象は、Linuxだからじゃなくて、Windowsだからってことと、 何か関係あるのでしょうか?

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.3

>指定されたパスが見つかりません。 エスケープがパスの区切りとみなされているということですね。 具体的にコマンドを書いていただいた方が回答が得られ易いのではないかと思います。 下記のようにクオートで囲ったらどうなりますか。 'c:\\mysql\\data\\name_in_ko.tab'

re999
質問者

補足

アドバイスありがとうございます。 状況的にはこんな感じです。 ▼ダンプデータ取得 D:/user/xampp/mysql/bin>mysqldump -u root -p データベース名A > hoge_piyo_mysql.dump; ▼ダンプデータを違うDBへ取り込む D:/user/xampp/mysql/bin>mysql -u root -p データベース名B < 'hoge\_piyo\_mysql.dump'; クオートで囲んでみたのですが、やっぱり「指定されたパスが見つかりません。」と表示されます。 その後、色々試した結果、 D:/user/xampp/mysql/bin>mysql -u root -p --default-character-set=utf8 データベース名B < hoge_piyo_mysql.dump; とやると(--default-character-set=utf8をつけると)うまくいくことが分かりました。 無事取り込みは出来たのですが、なんでこうなるのでしょうか。 ▼分からないこと ・「指定されたパスが見つかりません。」と表示される理由(ダンプデータは、mysql/bin/直下に置いてます) ・--default-character-set=utf8をつけるとうまくいく理由(取得したダンプデータの文字コードを確認したら、ちゃんとUnicode(UTF-8)になってました) 何か、多分こうなんじゃないの? 的なアドバイスがあれば、教えてください。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.2

済みません。 MyQSLですね(カテゴリーを見ていませんでした) MySQLではアンダースコアは任意の1文字を表しますからエスケープしないとだめじゃないかな。 例えば test_test -> test\_test

re999
質問者

補足

回答ありがとうございます。 エスケープすると、 >指定されたパスが見つかりません。 となり、エラーとなります。 ダンプデータファイル名のアンダースコア自体を外すと、取り込めるので、パスが違ってるってことはないと思うんですが…

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

> ダンプデータのファイル名にアンダースコアがあると取りこめないのですが 取り込むとは何かのソフトで読み込むということでしょうか。 そうで在ればそのソフトの仕様の可能性がありますね。 一般的にはアンダースコアーは認められていると思いますので、そのソフトが記号としてはねる(認めていない)文字かもしれません。

re999
質問者

補足

回答ありがとうございます。 >何かのソフトで読み込むということでしょうか いや、コマンドプロンプトでの話です。 >一般的にはアンダースコアーは認められていると思います そうですか。そうですよね……

関連するQ&A

  • ファイル名の先頭にアンダースコアをつける意味

    プログラムのファイル名の先頭にアンダースコア "_"から始まるファイルを見ることがあります。これはどのような意味があるのでしょうか? (例: "_abc.c" "_ddd.html" 等)

  • アンダースコアを消したい

    今会社でUNIXを使っているのですが、 ファイル名にアンダースコアの入ったファイルがあるのですが、 それを消したいと思っております。 hoge_1.txtだったらhoge1.txtというようにしたいのですが mvコマンド時の正規表現の仕方がわかりません。 mv hoge*_.txt→hoge*.txt というようにしましたができませんでした。 良い方法を教えてください。 お願い致します。

  • '_'(アンダースコア)の使い方について

    グローバル関数や__constructなどの決め事以外で文字列の頭に'_'(アンダースコア)を付けることがありますが、あれには何か”暗黙の了解”のようなルールがあるのでしょうか? 例えばクラス名で class _Member 関数名で public function __toString() 変数名で $this->_member などなど。 初心者なもので、よろしくおねがいします。

    • ベストアンサー
    • PHP
  • ファイル名について

    素人質問で恐縮ですが、だれか教えてください。 以前の職場では、HTMLファイルなどのファイル名をつける際、以下の決まりごとがもうけられていました。これには、重要な意味があるのかないのか教えていただけると大変助かります。 ・ファイル名は8文字以下にすること ・ハイフンは使わず、アンダースコアを使うこと とくに、2番目の決まりごとに関してなにかわかる方がいらしたら是非教えてください。 お願いします。

    • ベストアンサー
    • HTML
  • データをファイルにダンプ(エキスポート)する方法

    SQLサーバー7及び2000 テーブルのデータをローカルのファイルへダンプ(エキスポート)をストアド,SQL文でかけないでしょうか。SQLサーバーのデータがテキストエディタで見えるようになればOKですので。教えてくださいませ。

  • ファイル名・フォルダー名について

    ファイル名・フォルダー名について XPのSP3を使用しております。 今回、HDDの整理をかねて、音楽ファイルの整理に取り組んでおります。 そこで早速ですが、ファイル名やフォルダー名のつけ方についてお聞かせ頂きたいのです。 自分なりに調べてみましたら、これらの命名規則としては 「半角スペース」は使用せず、「半角アンダースコア」なり「半角ハイフン」を使用する・・・ といった記事を多く目にしてきました。 OS間の互換性、WEB上での問題などが理由である事も知りえた上で、 マクロソフト社のサポートにも尋ねてみたところ、 「殊、フォルダーに関してはあまり深い階層を設けない限り、(禁止文字以外の)半角記号の使用には問題がないと思われます」との回答を頂き、初心者の私においては、 実際はどっちなのだろかと幾分疑問に感じ、こちらにお邪魔させて頂く事にしました。 質問の要点をまとめますと、 ・ネット上にファイルをアップしたりのWEB経由の予定はなく完全な個人使用の範囲 ・今後OSをXPからVISTAなりセブンなりに乗り換えた場合の互換性の問題 ・あるいは新設したHDDへの移動後の問題 これらを前提にやはり半角スペースは避けて、アンダースコアやハイフン、あるいは半角括弧などで連続した文字列で構成しておくべきなのでしょうか? (「半角ドット」や「半角の中点」の可否についてもお聞かせください。) という事です。 実際、特にアンダースコアなどは使い慣れていないせいか、どうも見づらく、また、今後の環境も考慮して事前にお尋ねさせて頂く次第です。 また、参考までに、皆様のとられている命名の仕方などもお聞かせ下さると、尚ありがたく思います。 このような初歩的な事柄にお付き合い頂く事は大変恐縮なのですが、有益なご指南を頂ければ幸いであります。 どうかよろしくお願い致します。

  • ダンプファイルから特定のテーブルのみインポート

    データベース丸ごとmysqldumpでダンプしたファイルからリストアを行う際に、特定のテーブルのみインポートする方法はありますでしょうか。 ダンプファイルを開いて地道に編集すれば良いのでしょうが、ダンプファイルが1Gほどあるので、とてもできません。 その中の100M程のデータを得るために、いつも数時間かかっています・・・。

    • ベストアンサー
    • MySQL
  • dumpファイルをテキストに書きおこす(linux

    dumpファイルを今、テキストに書き写しています。 linuxでコマンドを使用して行っています。 ちなみにコマンドはこんな感じです。 tcpdump -qr ファイル名 | less >& テキストファイル名 です。 一応、書き込みは成功しているのですが、 時間がかなりかかっています。 これって時間がかかるのは仕方ないのは分かるのですが、 終わりますかね・・・? 書き写して1時間たってますが、いまだに終わりません・・・。 dumpファイルだとコマンドが必要なので すぐ見れるようにしたいのですが、ファイルが大きすぎるのか 全部を見ることが困難です。 ファイルを全部見ることと、コマンドなしでも見れるようにしたいのですが そういう方法はあるのでしょうか? あと上のコマンドで書き込んでいますが、終わるのでしょうか? (ちなみにファイルサイズは大体200~500MBです)

  • pg_dumpではかれたテキストファイルを実行もデータの移行失敗

    DBを開発環境から、本番環境へ移行する際、pg_dumpではかれたデータを元に、pg_restoreで復元しようとした所、エラーが出て、うまくいかず。pg_dumpをtxt形式で出力させ、それを実行させました。 結論から言うとテーブルは全て作成されましたが、データの移行が出来ていませんでした。エラーは出ていませんが、COPYコマンドがうまくいっていないようでした。 開発環境がPostgres8.xで本番環境がPostgres7.4.3なのが影響している可能性が高いと判断してますが、どなたかわかる人はおりませんでしょうか。

  • ダンプリストア時のDBデータ不整合

    環境 CentOS5系 64bit DBバージョン 8.3.3 本番DBサーバからpg_dump -c -D でダンプしたデータを、ローカルテストDBサーバ へpsql にてリストアした際、データ不整合が、一部のテーブルに発生しました。 前のデータが一部クリアされずに残っている状況です。 ダンプのデータは、DBの内容と同じなのですが。 因みに、pg_dump パラメータ無しのダンプのリストアでは、発生しません。 何が、原因でしょうか? もしかしてバグ? ご教授願えれば幸いです。 宜しくお願い致します。