psql
を実行しようとすると、
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
と私がチェックしたときServer.log
、 私が見た:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.5,
which is not compatible with this version 9.6.1.
私はフォローしようとしました このチュートリアル(9.4から9.5へ) 9.6.1のアップグレード用ですが、このエラーメッセージが表示され続けます
cannot write to log file pg_upgrade_internal.log
Failure, exiting
走った後
$ pg_upgrade -v \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres9.6.1 \
> -b /usr/local/Cellar/postgresql/9.5/bin/ \
> -B /usr/local/Cellar/postgresql/9.6.1/bin/
誰かが私が欠けている/間違っていることを知っていますか?ありがとう!
システム:
データベースのサイズが大きくない場合は、pg_dumpおよびpg_dumpallを使用して、データベース構造とデータダンプをposgtres 9.5からSQLクエリの形式で取得し、それをpostgres 9.6.1で復元できます。
データベースのサイズが大きすぎる場合は、pg_upgradeを使用してください。エラーを確認すると、ユーザーにはディレクトリに対する権限がなく、ログファイルに書き込むことができないようです。また、時間を節約するため、pg_upgradeの-k
オプションを使用してアップグレードを高速化することをお勧めします。 -k
は、新しくインストールされたデータディレクトリに古いデータのソフトリンクを作成することに注意してください。したがって、古いデータを削除することはできません。
9か月後、pg_upgrade
を使用して9.6.5からPostgreSQL 10に更新しました。
1)postgresqlを停止します。
brew services stop postgresql
2)postgresql10データベースを初期化します。
initdb /usr/local/var/postgres10.0 -E utf8
3)新しく作成したdbを再確認します。
ls /usr/local/Cellar/postgresql/
4)pq_upgradeを実行して、データを新しいデータベースに移動します。
pg_upgrade \
-d /usr/local/var/postgres \
-D /usr/local/var/postgres10.0 \
-b /usr/local/Cellar/postgresql/9.6.5/bin/ \
-B /usr/local/Cellar/postgresql/10.0/bin/ \
-v
5)古いデータベースの名前を変更します。
mv /usr/local/var/postgres /usr/local/var/postgres9.6.5
6)新しいデータベースの名前をpostgresに変更します。
mv /usr/local/var/postgres10.0 /usr/local/var/postgres
7)postgresqlを再起動します。
brew services start postgresql