自分のサイトで利用しているレンタルサーバをXREAからsakuraインターネットに移そうと思っています。


データベースとしてMySQLを利用しているのですが、これをphpMyAdminから、sql形式で、XREAでエクスポート、そして、sakuraにインポートすれば、問題無いと考えていました。

ところが、sakuraにインポートして見てみますと文字化けしてしまいました。

XREAで自分のパソコンにエクスポートしたsqlファイルは日本語部分は普通に見ることが出来ています。ということは、sakuraにインポート時の不具合なのでしょうか?

ちなみに、MySQLのバージョンは、どちらのレンタルサーバも4.0系です。

改善する方法をご存知の方がいましたら、ぜひ教えていただけないでしょうか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/06/27 14:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:t_shiono No.1

回答回数256ベストアンサー獲得回数22

ポイント23pt

MySQLの設定などが分からないと何ともいえないのですが、エクスポートしたファイルの文字コードとMySQLの文字コードが不一致なのだと思います。

Sakuraを利用しているわけではないので、初期設定でどの文字コードの設定なのか分かりませんが、SQLファイルを、UTF-8、EUC、Shift JISなどに変換後、再度インポートしてみてはどうでしょうか?

id:minomino13

UTF-8、EUC、Shift JIS、それぞれでインポート・エクスポートを試してみましたが、やはり文字化けしてしまいます。

もう一度やってみますが、他に原因は考えられないでしょうか?

2007/06/21 00:51:04
id:mouitchou No.2

回答回数174ベストアンサー獲得回数5

ポイント23pt

http://hiromasa.zone.ne.jp/blog/archives/534/

http://tenderfeel.blog104.fc2.com/

上のふたつと、期せずして私も同じようなことを試しました。

結果はオーライ。

SQL実行、画面からコピー貼り付け、文字コード指定してファイルに保存の手順です。

エクスポートの時点でファイル書き出しを指定するときも、文字コード指定(EUC,Shift-JIS)がありますが、その場合でも、保存後に開いてエディタ上でコードを確認した方がいいみたいです。文字コード指定して保存しなおせば確実です。

このようにして、文字コードを合わせたファイルでインポートしてみてください。

id:minomino13

ありがとうございます。

やっぱり文字コードの問題なんでしょうか?回答を参考にして、もう一度試してみます。

2007/06/21 01:24:37
id:Yota No.3

回答回数453ベストアンサー獲得回数28

ポイント22pt

2つのサーバでphpMyAdminから下のsqlを出せば、両者の文字エンコーディングの設定がわかります。

SHOW VARIABLES LIKE 'char%';

charcter_set_serverがいまお持ちのバックアップの文字コードと違っている場合は、charcter_set_serverをmy.iniをいじって変更するか、エンコーディング変換してその文字コードで格納する。

バックアップsqlが仮にSJISだとすると先頭に

SET NAMES sjis ;

と文字コードを宣言すれば、MySQLの方で自動的に変換してくれるかも。

id:minomino13

ありがとうございます。

一連のことはまだ試していないのですが、時間が出来る週末に試してみます。

もし他にも、こうなんじゃないか?などといったご意見がございましたら、どうぞよろしくお願い致します。

2007/06/21 15:05:25
id:elf No.4

回答回数76ベストアンサー獲得回数8

ポイント22pt

phpMyAdminでインポートを行うとPHPの設定の影響を受ける可能性もあるかもしれません.

さくらからだとsshなどでログインできると思うので,下記の手順で作業を行うほうが確実です.

  • SQLをサーバーにscpやftpなりでアップロードする
    • 念のためにクライアントソフトに文字エンコード変換とか自動テキスト変換があればそれを無効にしましょう
  • コマンドでSQLをMySQLに入れる
mysql -u 「さくらからもらっているMySQLアカウント名」 -p 「使用するデータベースの名前」 < 「あなたがアップロードしたSQLファイルのファイル名」

データベースをあらかじめ作っていない場合は下記コマンドで作成を行います.

mysql -u 「さくらからもらっているMySQLアカウント名」 -p create 「使用するデータベースの名前」

ちなみにMySQL 4.0は文字エンコードの自動変換の機能は持っていないので,テーブル作成やレコードの追加をするだけでいうとあまり意識する必要はないと思います

id:minomino13

ありがとうございます。

今までphpMyAdminしか使用経験がないため、「SQLをサーバーにscpやftpなりでアップロードする」という文章の、その具体的な方法すら分からない状態ですが、頑張ってみます。

2007/06/23 19:15:42
  • id:mouitchou
    上手く行かないと言うことなので、追加です。
    http://hiromasa.zone.ne.jp/blog/archives/534/
    にあるように、小分けにしたテストを進めていけば、エラーの対処ができるのではないでしょうか。
    私の場合は(うっかりミスが多いこともあり)、SQL内容を2分法で片方ずつ試してみてはできたテーブルなどを削除し直し、これを繰り返してエラー原因を追いかけることが多いです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません