
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で質問しましょう!
似たような質問が見つかりました
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- その他(ブラウザ) Microsoft Edge(最新版)保存中サイトが全てログオフ状態で困っています! 3 2022/06/15 11:02
- WordPress(ワードプレス) ワードプレスのエラー ログイン画面が表示できない 1 2022/11/05 09:51
- Yahoo!メール Yahooアカウントにログインできなくなって困っています。 2 2023/05/16 02:28
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- iPhone(アイフォーン) 至急。エラーiphone初期化→icloudからデータを復旧したい(LINEも制限がかかり入れない) 2 2022/09/18 19:20
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pg_dumpallのやり方がわからな...
-
PostgreSQL6.5.3から8.2.3へラ...
-
pg_dumpallができない・・・
-
ダンプリストア時のDBデータ...
-
ディスク上のサイズの乖離が大...
-
カラムの一覧を取得したい
-
adminIIIの使い方
-
SQLの日本語表示
-
psql でのエラー出力について
-
oracle spool SJIS → UTF-8
-
ヤフーショッピングでPayPay支...
-
トランザクションログからの復...
-
更新不要はどういう意味なので...
-
phpPgAdminの動作が重い
-
トランザクションの開始
-
DBD::Pgのダウンロードをしたい
-
時間のフォーマット
-
不良セクター 修復方法は?
-
Windows版 pg_dumpの結果をログ...
-
WIN版のpostgress...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxからWindowsへのリストア...
-
pg_dumpの文字化け
-
テーブル単位のリストア
-
改行がはいったデータでエラー?
-
pg_dumpでデータの引越し
-
psqlでFATALエラー
-
ダンプリストア時のDBデータ...
-
pg_dumpの指定パラメータ
-
Postgres:LinuxからWinへのDB移行
-
PostgreSQLからSQLServerへの移行
-
pg_dumpallのやり方がわからな...
-
PostgreSQL6.5.3から8.2.3へラ...
-
pg_dumpallができない・・・
-
エラーが起こっているレコード...
-
ディスク上のサイズの乖離が大...
-
Windows上のPostgreSQLの完全削...
-
oracle spool SJIS → UTF-8
-
Windows版 pg_dumpの結果をログ...
-
新規作成したPostgresqlデータ...
-
Query OK, 0 rows affected
おすすめ情報