kino44
@kino44 (Shota Kinoshita)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

.sqlファイルをデータベースにインポートできません。

解決したいこと

postgreSQLを使っています。
エクスポートしたデータベースダンプを、ローカルのデータベースにインポートしたいです。
インポート中にエラーが発生しました。
解決方法を教えて下さい。

OS:Mac
postgreSQLのバージョン 11.14
(本番環境でもpostgreSQLのバージョンが11なので11を使っています)

発生している問題・エラー

インポートするために実行したコマンド

% psql database_1 < (パス)/aaa.sql

コマンドを実行した結果出てきた文

略
.
.
.
invalid command \N
invalid command \N
invalid command \N
invalid command \.
ERROR:  syntax error at or near "4154"
LINE 1: 4154 7482 126.40.52.41 0101000020E61000006D718DCF64736140323...
        ^
Query buffer reset (cleared).
.
.
.
略

(同じようなエラーが続いて長くなっているのと、DBの中身が見えてしまうので省略しています。)

このコマンドを試した結果、
psql -d database_1でpostgreSQLに接続し、
select * from users;と打つと、usersのテーブルは表示されます。
しかし、あるはずのテーブルや、テーブルの中身がいくつか抜け落ちてしまっています。
おそらくエラーのせいだと思いますが、このエラーを回避する方法はあるでしょうか?

自分で試したこと

% pg_restore -d database_1 (パス)/aaa.sqlでインポートも試みましたが、

pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

と表示され、インポートできませんでした。

2022.2.7 追記

psql --set ON_ERROR_STOP=on database_1 < aaa.sql

でリストアしてみたら、

ERROR: could not open extension control file "/usr/local/opt/postgresql@11/share/postgresql@11/extension/postgis.control": No such file or directory

というエラーが出てきて止まってしまいました。

postgisが無いのかなと思い、
brew install postgis でpostgisをインストールしましたが、何も変わりませんでした。

2022.2.10 追記

こちらのページなどを参考にしながら、一度全てのpostgresを消去し、新たにpostgresql@11をbrewでインストールしたのですが、

2022-02-10 23:45:48.398 JST [97486] FATAL: lock file "postmaster.pid" already exists
2022-02-10 23:45:48.398 JST [97486] HINT: Is another postmaster (PID 97426) running in data directory "/usr/local/var/postgresql@11"?

というエラーがでて、postgresqlが起動できません。
思えば、このエラーが出るのが全部の原因のような気がしています。
このエラーの解決策は上記のサイトの方法以外に何かありますでしょうか?

0

3Answer

aaa.sql の中身が SQL ではないようです。どうやって生成しましたか? 中身はどうなっていますか?

1Like

Comments

  1. @kino44

    Questioner

    どうやって生成したかはわからないのですが、中身はデータベースの中身そのものです。
  2. @kino44

    Questioner

    pg_dumpでdumpしたようです!

Comments

  1. @kino44

    Questioner

    ありがとうございます。この記事を使っても解決できませんでした。
    psql --set ON_ERROR_STOP=on database_1 < aaa.sql
    でリストアしてみたら、
    ERROR: could not open extension control file "/usr/local/opt/postgresql@11/share/postgresql@11/extension/postgis.control": No such file or directory
    というエラーが出てきて止まってしまいました。

Comments

  1. @kino44

    Questioner

    はい、そのように実行しても
    ERROR: could not open extension control file "/usr/local/opt/postgresql@11/share/postgresql@11/extension/postgis.control": No such file or directory
    がでてきてしまいます。
  2. (brewあまり分からなくてスミマセン)
    ポスグレ11対応のパッケージがインストールされているか確認ですね
    $ brew versions postgis
    $ brew list | grep postgis
    手元のUbuntuでは postgresql-13-postgis-3-scripts パッケージにpostgis.controlが含まれています。


    Linux環境構築で何度か同様にハマりましたが、PostgreSQL関連パッケージを完全に削除してから入れ直すのが最速だと思います。
    入れ直すときは、いきなりPostGISを指定してポスグレ本体はbrewに任せる方が良いですね。
  3. @kino44

    Questioner

    https://codenote.net/mac/homebrew/3894.html#:~:text=.postgresql.org%2F-,brew%20uninstall%20%E2%80%93force%20%E3%81%A7%E5%85%A8%E3%81%A6%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB,%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82
    こちらのページなどを参考にしながら、一度全てのpostgresを消去し、新たにpostgresql@11をbrewでインストールしたのですが、
    2022-02-10 23:45:48.398 JST [97486] FATAL: lock file "postmaster.pid" already exists
    2022-02-10 23:45:48.398 JST [97486] HINT: Is another postmaster (PID 97426) running in data directory "/usr/local/var/postgresql@11"?
    というエラーがでて、postgresqlが起動できません。
    思えば、このエラーが出るのが全部の原因のような気がしています。
    このエラーの解決策は上記のサイトの方法以外に何かありますでしょうか?

Your answer might help someone💌