PostgresSQLに詳しい方、教えてください。
現在、私はネットショッピングサイトのサーバ管理をしており、データベースにPostgresSQLを使ってます。
サーバのハードが老朽化してきたため、今までの自社サーバーをやめ、レンタルサーバをかりてそこへサイト移転することになりました。
PHPやHTMLといったソース類は、容易に移転できたのですが、データベースの移転がうまく行かず困っております。
どなたかご教示ください。
■環境(移転元)
サーバ:自社サーバ
OS:Linux version 2.4.20-16.9
Postgresバージョン:psql (PostgreSQL) 7.3.4
■環境(移転先)
レンタルサーバ会社:さくらインターネット
サービス名:さくらのVPS(v3) 1G
OS:Linux version 2.6.32-279.1.1.el6.x86_64
Postgresバージョン:psql (PostgreSQL) 8.4.13
■現象
移転元のサーバにて、pg_dump -i コマンドを実施。
生成されたダンプファイルをFFFTPにて自分のWindows7のマシンに保存。
Windows7上のエディター(DreamWeaver)でファイルを開くと文字化けしています。
エディターのエンコードをシフトJIS→EUCに変更するとデータベースに入力されている文字列をきちんと見ることができます(一部文字化けは残るのですが。)ので、ここまでは成功しているように思っています。
このダンプファイルをFileZillaにて移転先のサーバにアップロード。
psqlコマンドでリストア。
あらかじめ、移転先のPostgresには移転元のデータベース名と同じものを作成し、ユーザー名も同じものを作成してあります。
ところが、いざselectコマンドを使いデータを検索してもあるはずのデータが出てきません。
テーブルはきちんと作成されているようなのですが。
どうしたらデータをきちんと移転できるのでしょうか?
どなたか、ご教示頂けないでしょうか。
No.1ベストアンサー
- 回答日時:
文字コードがおかしいんじゃないでしょうか。
DreamWeaverじゃなくて、例えばサクラエディタで開いてみたらどうでしょう。そして元のファイルはEUC-JPになっているでしょうからそれをUTF-8で保存します。そしてFileZillaのところからやり直してみるといいでしょう。
とにかく、pg_dumpで出力されたファイルの中身をEUC-JPからUTF-8に変換してからpsqlで取り込むと良さそうかと存じます。
この回答への補足
ありがとうございます!
ヒントになりました。
移転元のデータベースをダンプする前に
export PGCLIENTENCODING=EUC-JP
を行い、ダンプを行ったものを一度Windows7に持ってきて、サクラエディタで開いてみたら、キレイに表示されていました。
それを移設先のサーバに持って行き、移転先でも
export PGCLIENTENCODING=EUC-JP
を行ってから、psqlコマンドでリストアしました。
このときに表示されるエラーを精査してみたところ、
ERROR: 符号化方式"EUC_JP"文字0xfce2<は"UTF8"と同じではありません
CONTEXT: user_infoのCOPY。行番号 412
のようなエラー文が多数出ているのに気づき、Windows7に戻ってサクラエディターで一箇所ずつ修正し、psqlコマンドでリストアしましたところ、きちんと表示されました!
文字コードと禁止文字が混入していたことが原因のようです。
移設元のデータベースにどうやってこの文字が混入したのかは謎ですが移設はうまくいきました。
ありがとうございます。感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- Android(アンドロイド) Androidスマホのデータ移行が終わらない 1 2023/08/04 17:25
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- サーバー ログオンユーザーがいない場合に自動再起動 1 2022/09/28 09:53
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows版 pg_dumpの結果をログ...
-
tar.gzファイルのリストアについて
-
Query OK, 0 rows affected
-
teraterm上でsqlplusにログイン...
-
ACCESS VBA;コマンドボックス...
-
ヤフーショッピングでPayPay支...
-
ディスク上のサイズの乖離が大...
-
SQLServerへの接続子による違い...
-
PostgreSQLについて教えてくだ...
-
LinuxからWindowsへのリストア...
-
pg_restoreでエラー
-
PostgreSQLの再インストールに...
-
複数カラムを跨いだCOUNTができ...
-
SQLiteファイルへの同時アクセ...
-
IDの払い出し(文字列)
-
ガス給湯器のエラーコードにつ...
-
新規作成したPostgresqlデータ...
-
エクセルVBA_ADO「ファイアホー...
-
リコーimagioneo630 エラーs...
-
Postgres:LinuxからWinへのDB移行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows版 pg_dumpの結果をログ...
-
oracle spool SJIS → UTF-8
-
Query OK, 0 rows affected
-
ファイルに記述されている複数...
-
AWSのcloud9で「 ls -l ~/.ssh/...
-
Oracle / UNIX ファイルコマン...
-
tar.gzファイルのリストアについて
-
psql でのエラー出力について
-
CSVファイルをBULK INSERTでSQL...
-
shellからpostgresqlへの変数の...
-
date型に空白を入れるとエラー...
-
アクセスのフォームで10件づつ...
-
OSQLの起動について
-
ACCESS VBA;コマンドボックス...
-
コマンド履歴
-
SQL+Plusの訂正
-
AS400でのライブラリ配下の全て...
-
teraterm上でsqlplusにログイン...
-
Insert文 で 変数を使いたい
-
SQL: insert/importコマンドの違い
おすすめ情報