• ベストアンサー

MySQLの構造をテキストで書き出したい

データベースを引っ越ししようと思います。 sql * from table into outfile 'table.txt'; で、データは取り出せたものの構造の取り出し方が わかりません。 phpMyadminが使えるといいのですが使えないもので。 引っ越し先で簡単にdbが構築できるようなSQLでとり出せ ないものでしょうか?

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

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

>UTFに変えるとTableの作成からデータのインポートまで完了し >ますが読み込まれたデータが文字化けしていて読めません。 書き出されたSQL文の先頭に SET NAMES 'UTF8'; と記述して文字コードをしていすればうまくいくかもしれません。

wakaranai_kun
質問者

お礼

ご回答いただいたみなさんありがとうございます。 だめみたいです。 (×_×;)

その他の回答 (3)

回答No.4

mysqldumpで出力されたCREATE TABLE文があると思うんですが、そこで文字コードの指定とかされてませんか? されてないのであれば、SJISを指定して流してみてはどうでしょう?

  • dell_OK
  • ベストアンサー率13% (766/5722)
回答No.2

文字化けについては、私は詳しくないので、はっきりとした回答はできません。 ただ、確認してみる事として、それぞれのバージョンのデータベースに mysql でログインして、 show variables 'char%'; を実行してみてください。 文字コードに関する情報が表示されます。 それぞれのバージョンで異なる部分があれば、移行先のバージョンの方の設定ファイル(my.cnfだったかな)を変更しないといけないのかも知れません。 私はEUCしか使った事がなく、ごく簡単な設定しかしていないので、どこをどう変更するのかも、よくわかっていません。 私はバックアップのために以下のコマンドを実行しています。 mysqldump --default-character-set=ujis データベース名 > ダンプファイル名 -u root -pパスワード 試された方法は =ujis の部分がUTF用のもので出力されたのですよね。 MySQLの設定と、データベースがUTFで作成されているのでしたら、それでうまくいけるのだと思うのですが・・・。

  • dell_OK
  • ベストアンサー率13% (766/5722)
回答No.1

サーバーでコマンドプロンプト(=Windows、Linuxだとターミナルとかコンソールと呼ばれているのかな)が使えるのでしたら、 mysqldump データベース名 > ダンプファイル名 -u root -pパスワード とかでデータベースを丸ごと取り出せ、 mysql データベース名 < ダンプファイル名 -u root -pパスワード とかで再構築できます。 取り出す時のデータベース名と再構築の時のデータベース名は異なっていてもかまいません。 でも、phpMyAdminが使えないと言う事ですので、他者が管理するサーバーなのでしょうね。 でしたら、 show create table テーブル名 で、テーブルをクリエイトするSQL文を取り出す事ができます。 テーブル数分繰り返さないといけないのですが、 このSQL文をそのまま実行すればテーブルが作成できると思います。 http://dev.mysql.com/doc/refman/4.1/ja/show-create-table.html

wakaranai_kun
質問者

お礼

ありがとうございます。 mysqldumpで書き出せました。 ただ、再構築の際に文字化けを起こしてうまく入りません。 書き出されたSQL分はShift-JISですがこれだとTableの作成 でエラーが出ます。データが文字化けしているせいみたいです。 UTFに変えるとTableの作成からデータのインポートまで完了し ますが読み込まれたデータが文字化けしていて読めません。 元のMySQLは4.0で移行先は5.0です この場合、どうすればいいのでしょうか? 情報不足であれば補足いたします。

関連するQ&A