• ベストアンサー
  • 困ってます

mysqldumpの使い方がイマイチ分かりません。

こんにちは。よろしくおねがいします。 MySQLからMSSQLServerへデータを移すなどという事をやっているのですが、途中、詰まっています。 助言いただける方がいましたら、どうかよろしくおねがいしますm(_ _)m 【環境】 移行元: Windows2003Server MySQL5.1 移行先: Windows2003Server MSSQLServer2000 【やること】 MySQLにあるデータをMSSQLServerに移行する。 【方法】 1.移行元で、コマンドプロンプト起動。以下のコマンドを打ち込み、ファイルにする。 mysqldump -u ユーザ名 -pパスワード --default-character-set=binary --tab=D:/tmp --fields-terminated-by=, --fields-optionally-enclosed-by=\" --lines-terminated-by="\r\n" DB名 2.ファイルをテキストエディタで開き、「UTF8→SJIS」に変換し、保存しなおす。 3.ファイルを、移行先で、「bcpユーティリティ」を使用して、テーブルに放り込む。 【困っているところ】 mysqldumpを実行した後のファイルに、どうしたらいいのか不明なデータが入る。 テーブル構成は フィールド1:int(auto_increment) フィールド2:text(utf8_general_ci) のみです。 phpMyAdmin上で、データの挿入から、フィールド2に対して、「改行を含むデータ」を登録した場合、不明データが入ります。 ■登録データ あああああ いいいいいいい ううううう えええええええ おおおおおおお ■mysqldumpで作成されるデータ "あああああ\ いいいいいいい\ ううううう\ えええええええ\ おおおおおおお" 多分、今まで気にしていなかった(Win-MSSQL環境がほとんどなので...)改行コードが~といったところでは無いかとは思っていますが、 いろいろ試していますが解決に至っていません。 解説できる方がいらっしゃいましたら、どうかお力をお貸しいただけると助かりますm(_ _)m 試したこと。 --result-file=file あたりを使ってみた。 。。。意味なし? http://dev.mysql.com/doc/refman/5.1/ja/load-data.html 一応、読んで、オプションへの指定を変えて出力して取り込んでみるものの、特に変わらず。。。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数777
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

こんばんは。 移行するなら、マイグレーションツールが無償で提供されています。 以前使った事がありますが、スムーズに移行できました・・・。 MySQLのサイトのどっかにあります。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

こんばんは。さっそくの回答ありがとうございます。 >>移行するなら 「移行」と書いてしまいましたが、「定時実行」させる必要があるので、データ連携。。。とでも言うんでしょうかね?(汗 MySQL側~を使用した状態でしばらく動かしておき、MSSQLServer側では、データ参照のみさせるような別システムを立ち上げて、その後、なんやらかんやらする。 という話になっているので、 mysqldumpコマンドを、コマンドプロンプト上で定期実行するような、バッチファイルにしてタスクで蹴るか、SQLServerストアドから蹴るか。。。 などという事を考えていました。 (差分。とかも考えましたが、まぁ、そこも何とかなるし、まずは「全データを全とっかえする処理を定時で」と考えています。 >>マイグレーションツールが 楽にできる上に、定時実行なんか出来たりしたら最高なんですけどね(汗 ちょっとそれも出来ないか含め、探してみたいと思います。 ありがとうございました。

関連するQ&A

  • mysqldumpについて

    mysqldumpに関して、2つ目。。。というより、2回目(?)の質問になります。 知恵をお貸しいただける方、どうかよろしくお願いしますm(_ _)m 前質問 http://okwave.jp/qa/q7308667.html 「マイグレーションツール使えばいんじゃね?」 とのアドバイスを参考にとりあえず試してはいるものの、 それはそれ。これはこれ。 として、どうしても前質問のような現象になることの原因が気になります。 ■テーブル構造 フィールド名|種別|照合順序|その他 id|int(10)|なし|auto_increment data|text|utf8_general_ci|なし の2フィールドのみです。 ■データ登録 phpMyAdmin上の操作で、データ挿入を行い、「id」は、auto_incrementのため放置。 「data」に以下データを登録します。 あああああ いいいいいいい ううううう 登録後、再度、別のデータを登録します。 かかかかか ききききききき くくくくく ■mysqldump実行 mysqldump -u ユーザ名 -pパスワード --default-character-set=binary --tab=D:/tmp --fields-terminated-by=, --fields-optionally-enclosed-by=\" --lines-terminated-by="\r\n" DB名 テーブル名 ■実行結果 1,"あああああ\ いいいいいいい\ ううううう" 2,"かかかかか\ ききききききき\ くくくくく" ■疑問箇所 ん?コレなんだ?? 1,"あああああ\←「コレ」 --fields-terminated-by=, は、カラム区切りだから、「1,"あ」で問題なく出来ている。 --fields-optionally-enclosed-by=\" は、文字列系のデータの囲み文字指定。。。「"あああ~ううう"」で問題なさそう。 --lines-terminated-by="\r\n" は、レコードの区切り文字指定。。。「ううう"改行2,"かかか」で、テキストエディタで確認した際も、CRLFになってたみたいだから問題なし。 なんとなーく --lines-terminated-by="\r\n" を --lines-terminated-by="" にして実行してみると 1,"あああああ いいいいいいい ううううう",2,"かかかかか ききききききき くくくくく", 「\」は無くなったが、レコード区切りが無くなるので、全てを1レコードと認識する。。。 そもそも、「--lines-terminated-by」は、レコード区切りのはずなのに、何故改行コードに影響してくるんだろう?? 「文字列データ内の改行コードの指定」なんて無いよな??? と思いながら、何をどうすればいいのか困っています。 1,"あああああ\←「コレ」 の意味をご存知の方いらっしゃいませんか? 参考情報でも、予想でも何でも構わないです。一人だと既に詰まってる状況なので、お知恵をお貸しいただけませんか?よろしくおねがいしますm(_ _)m

    • ベストアンサー
    • MySQL
  • mysqldumpでデータを1行も読み込まない

    mysqldumpについて教えてください。 さくらインターネットのレンタルサーバを使っています。 telnetで接続し、 mysqldump --host=mysql**.db.sakura.ne.jp --user=★★ --password=**** ★★ < 適当な名前.sql で、サーバ上にある***.sqlを読み込ませようとしたところ、何故かテーブルを作る(上書きする)だけで、データは1行も読み込まれませんでした。 データはINSERT INTOで始まっています。 どのような原因が考えられますか?

    • ベストアンサー
    • MySQL
  • mysqldumpでの文字化けに関して教えてください。

    WindowsXPにMySQL4.1.15-nt,Apache2.0.55,PHP5.05をインストールしてプログラムを作りました。 MySQLのインストール先: C:\Program Files\MySQL\MySQL Server 4.1 MySQLにはEUCでデータが格納されています。mysqldumpで同一のWindowsXPへダンプしたところそのファイルを開くと文字化けしていました。以下を試しましたが解決しませんでした。 (1) shell> mysqldump -u userneme -p database > c:\backup.sql 秀丸で開くとUTF-8で開かれEUCで読み直しても解決しませんでした。 (2) shell> mysqldump default-character-set=ujis -u userneme -p database > c:\backup.sql 秀丸で開くとShift_JISで開かれEUCで読み直しても解決しませんでした。 (3)mysql.iniに末尾に下記を追加しましたが、解決できませんでした。 [mysqldump] default-character-set=ujis 将来的にはレンタルサーバー上で利用したいと思いPHPからMySQLへの格納をEUCにしました。 ダンプが文字化けをして大変困っています。なにか手がかりでもご教授いただければと思っています。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • mysqldumpでバックアップしたデータのリストア

    下記のようにmysqldumpでバックアップしています。 mysqldump --opt --user=user --password=pass --database dbname > backup.sql これをリストアする場合はdbnameを削除後 mysql -u user -p pass dbname < backup.sql だったと思うのですが、Mysql Administratorのリストアにてこのバックアップしたファイルを指定することは出来ますか? そのままAdministratorにファイルを指定したら 「The selected file was generated by mysqldump and cannot be restored by this application.」というエラーが発生します。 ご存知の方おられましたらご教授お願いします。

    • ベストアンサー
    • MySQL
  • mysqldumpについて

    MySQL初心者です。 すみません。教えてください。 mysqldump -u(ユーザー) -p(パスワード) --default-character-set=sjis (データベース名) > (ファイル名).sqlでバックアップを実行すると自動的に1つのsqlファイルに全テーブル分、以下のように生成されているのですが、リストアする時は既存のデータベースを削除(drop database データベース名;) する必要がない。又、権限付与(grant)もする必要が無いということになりますでしょうか? 逆にdatやdumpファイルとしてバックアップしているものについては、データベースの削除&権限付与等行う必要があるということになりますでしょうか? DROP IF EXISTS 'テーブル名' ; CREATE TABLE 'テーブル名' ( ) INSERT INTO 'テーブル名' VALUES ( )

    • ベストアンサー
    • MySQL
  • mysqldumpについて

    いつもお世話になっております。 MySQL4.0.21、phpMyAdmin2.6.0を使用しております。 mysqldumpコマンドをSSHでコマンド打つと、特定のテーブル以降のテーブルがダンプされません。 phpMyAdminでダンプするとキチンとダンプされるのです。 なぜなんでしょう?テーブル内のレコードに一部文字化けしているデータが含まれているのですが、エラーでちゃんと出力されていないのでしょうか? コマンドライン上にエラーは表示されません。 原因がわからずお手上げ状態です【><。】

    • ベストアンサー
    • MySQL
  • phpでmysqldump作成

    dump作成はphpファイルを動作させることで行っており、現在は下記内容のファイルをcronで動作させ、同一サーバ内に格納しています。 (phpファイルもDBも1つのサーバにあります。) このdump格納先に、別のファイルサーバを指定することは可能でしょうか? <dump作成用phpファイル> <?php @system("mysqldump --databases hoge > /var/admin/hoge.dump"); ?>

    • 締切済み
    • PHP
  • CRCの使い方、mysqldumpについて

    先日、社内DBのcronによる定期バックアップのデータが圧縮により破損したらしく、 顧客データを数日前まで戻さなくてはいけなくなりました。 私の所属している部署ではなかったのですが、同様の問題が発生するかもしれないので、 cronで毎日取っているバックアップデータをチェックするなどの方法を求められました。 ただ、私は経験もないため何をどうすればいいのか分かりません。 CRCでチェックすればいいのでは?と言われたのでCRCについて調べたのですが、 ググってみたのですが、CRCエラーの対処法や、CRCの解説がほとんどで、実際の使い方が見つかりません。 どのようにすれば、CRCでチェックサムを付加することができるのでしょうか? 付加したデータは専用の通信をするのでしょうか? scpやrsyncのようなコマンドがあると思っていたのですが、見つかりません… CRCでやりたいことは以下になります。 「DBサーバ 」と「DBバックアップサーバ」があり、 OSは「DBサーバ」が CentOS release 6.3 (Final) で、 「DBバックアップサーバ」が CentOS release 6.5 (Final) です。 「DBバックアップサーバ」上で mysqldump {「DBサーバ 」} {DB名} > {hoge.sql} をcronで実行しています。 この {hoge.sql} が正常か異常かを確かめたいのです。 サーバ上で障害等ない場合、mysqldumpで異常なデータが出力されたりすることはあるのでしょうか? HD上の空きには余裕がある状態で、他に特にサーバ上での問題もない場合、圧縮でデータが破損することはあるのでしょうか? CRCでできないのであれば、他にどのような手法があるのでしょうか? 完全に丸投げの質問で申し訳ないのですが、どうぞご教示をお願いいたします。

  • unix(freebsd)でmysqldumpコマンドが実行されない

    unix(freebsd)でmysqldumpコマンドが実行されない mysqlのバックアップとしてdumpファイルを指定の場所に保存したいのですが、 phpのsystem関数からmysqldumpが実行されずに困っています。 開発はwindowsで行っており、ローカル上では正常に動作してくれたのですが、 unix(freebsd)のサーバに乗せたところ、127コードエラーが発生しておりdumpファイルが生成されていない状況です。 サーバの違いによるものだと思うのですが、根本的な原因もわからず解決策が見つからずにいます。 情報不足とは思いますが、原因と対応策(アドバイス)等を教えて頂けないでしょうか。 以下に環境設定とコマンドを記しておきます。 【環境設定】 OS:FreeBSD 6.2 PHP:version 5.2.4 ※レンタルサーバを使用しています 【コマンド】 mysqldump --user=ユーザ名 --password=パスワード データベース名 --opt > /usr/home/~中略~/tmp/logs/mysqldump/test.dump ※/tmp以下のディレクトリのパーミッションは現状777にしています。

    • ベストアンサー
    • PHP
  • mysqldumpでリストアし一部外字が文字化け

    mysqldump  &#8211;default-character-set=utf8 でバックアップしてたsqlファイルを mysql &#8211;default-character-set=utf8 でインポートしWEBを開いてみたら 一部の外字が文字化けしてしまいました。 nkfでバックアップのsqlファイルの文字コード調べてみると、EUCJP-winとなっていました。 既に元のDBはサーバークラッシュの為無い状態です。 どなたかご教授お願い申し上げます。 <元DBの環境> OS:Windows2003Server DB:MySQL5.0 PHP:5.0 <リストアするDBの環境> OS:windowsXP DB:MySQL5.0 PHP:5.2