
PostgreSQL8.0.8の環境です。知り合いから頼まれての作業なのですが、2~3日前からPHPコネクションエラーが発生し、SSHからpostgres権限で該当DBにログインしようとしたところ、
psql: FATAL: conversion between LATIN1 and EUC_JP is not supported
と表示され、PSQLログインが出来ません。PgAdminやCSEでも同じメッセージです。
1.この状態から何とかログインできる方法はあるのか?
2.バックアップが無いようなので、このDBからテーブルやフィールド項目をGETする方法はあるのか?最悪、これまでのデータを破棄して、新しくDBを作成し、ガラだけでも作りたい。pg_dump をやろうとしても、同じFATALエラーが出ます。
3.何が原因でこれが起きたのか?変な文字が入り込んだ?
経験された方、わかる方がいらっしゃればと思います。
No.3ベストアンサー
- 回答日時:
export PGCLIENTENCODING=UNICODE
を指定するか
pg_dumpallでなくpg_dump "database名"で個別
バックアップ
どちらかでうまくいきませんか
ありがとうございます。
export PGCLIENTENCODING=UNICODEを指定して、pg_dump で個別にスキーマ+データを取り出すことができました。
感謝です!
pg_dumpデータが1Gを越えてました・・・。
スキーマを見ると、トリガーやファンクションのコメント部分に日本語が多数入っており、これが災いしていたのか、と思っています。
とにかくありがとうございました。
No.2
- 回答日時:
> >psql -l で見たデータベースのエンコーディングは何になっていますか。
> EUC_JP になってます。
client_encoding をデータベースと同じ EUC_JP にすると、どうでしょうか。
文字コードの conversion エラーは起きないと思いますが。
再度の回答、ありがとうございます。
client_encoding をEUC_JPとしてpg_ctl restart をかけましたが、現象は同じですね。。
これは、壊れたという判断が妥当でしょうか?
せめてどこからかスキーマが取れないか模索しています。psql かpg_connect で接続できないと、テーブル名やフィールド名、データ形は取得できないですよね?
No.1
- 回答日時:
psql -l で見たデータベースのエンコーディングは何になっていますか。
postgresql.conf で client_encoding を設定し、それがデータベースの
エンコーディングと不一致になっていませんか(違っていても本来問題
ありませんが、一致していれば自動変換は働かないのでエラーになりま
せん)。
pg_dumpall でのダンプも失敗しますか。
pg_dump --schema-only でスキーマだけをダンプできませんか。
ご回答、ありがとうございました。
>psql -l で見たデータベースのエンコーディングは何になっていますか。
EUC_JP になってます。
>postgresql.conf で client_encoding を設定し、それがデータベースのエンコーディングと不一致になっていませんか
client_encodingはsql_aeciiとなってますがコメントになってました。
>pg_dumpall でのダンプも失敗しますか。
以下のメッセージが出て、途中でexitします。
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: character 0xe697a5 of encoding "UNICODE" has no equivalent in "LATIN1"
pg_dump: The command was: SELECT proretset, prosrc, probin, proargnames, provolatile, proisstrict, prosecdef, (SELECT lanname FROM pg_catalog.pg_language WHERE oid = prolang) as lanname FROM pg_catalog.pg_proc WHERE oid = '4022564'::pg_catalog.oid
pg_dumpall: pg_dump failed on database "DB名", exiting
※ただし、このDB名は該当のDBではないのです・・・。
>pg_dump --schema-only でスキーマだけをダンプできませんか。
pg_dump: [archiver (db)] connection to database "DB名" failed: FATAL: conversion between LATIN1 and EUC_JP is not supported
が表示され、ダンプできません。このDB名は該当のDBです。
先方に聞いたら、仕様書が無い、とのこと。私も人のことを言えませんが。。。仕様書なし、スキーマも出ず、バックアップもない、でどうやったら復旧できるのか、という感じですねえ。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自治会総会の成立要件について
-
select文の書き方で分からない...
-
iPhoneのステータスバーのキャ...
-
Windows10がインストールできま...
-
postgresqlでのトランザクショ...
-
SQLにて指定日付より前、かつ最...
-
PostgreSqlでFunctionの作成に...
-
plgファイルの開き方
-
postgreSQLのint型は桁数指定が...
-
エクセルで縦のカラムデータを...
-
PostgresSQLの環境設定について
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PostgreSQLからSQLServerへの移行
-
テーブル単位のリストア
-
LinuxからWindowsへのリストア...
-
pg_dumpでデータの引越し
-
pg_dumpの文字化け
-
pg_dump
-
改行がはいったデータでエラー?
-
pg_dumpの指定パラメータ
-
ディスク上のサイズの乖離が大...
-
oracle spool SJIS → UTF-8
-
Windows版 pg_dumpの結果をログ...
-
ヤフーショッピングでPayPay支...
-
PostgreSQLについて教えてくだ...
-
Query OK, 0 rows affected
-
tar.gzファイルのリストアについて
-
Windows上のPostgreSQLの完全削...
-
CSVファイルをBULK INSERTでSQL...
-
リコーimagioneo630 エラーs...
-
ACCESSのフォームだけを起動す...
-
createdbでいきなりつまづいて...
おすすめ情報