• もっと見る
<< 2024年04月 >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
カテゴリアーカイブ
最新記事
最新コメント
Fedora31 to Fedora32 で Postgresql が起動しない [2020年04月28日(Tue)]

Fedora31 to Fedora32 Postgresql が起動しない



一番大事なことを、Fedora31 to Fedora32 の実行の前に行います。


それは、データのバックアップです。

※私は、「php」という名のデータを使っています。

※特に「postgresql」は、アップデートで起動しないことがあります。


# su postgres

$ HIZUKE=`date '+%d'` ; pg_dump php > /data/backup_pgsql/php_"$HIZUKE".sql


Fedora31 to Fedora32した後で確認すると、データベースが起動していませんでした。


エラーメッセージは次のようになります。


# systemctl start postgresql.service

Job for postgresql.service failed because the control process exited with error code.

See "systemctl status postgresql.service" and "journalctl -xe" for details.


# systemctl status postgresql.service

postgresql.service - PostgreSQL database server

     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)

     Active: failed (Result: exit-code) since Tue 2020-04-28 **:**:** JST; 8s ago

    Process: 15779 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=1/FAILURE)


ネットで「ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=1/FAILURE」を検索すると、以下のページが見つかりました。


*****開始*****

2014/09/01

CentOS 7PostgreSQL 9.2RPMパッケージをインストールしてsystemdを使って起動する

http://kanjuku-tomato.blogspot.com/2014/09/centos-7postgresql-92rpmsystemd.html

PostgreSQLのユニットファイル/usr/lib/systemd/system/postgresql.serviceでデータディレクトリに何が指定されているかを確認してみると/var/lib/pgsql/dataが指定されていることがわかります。


Environment=PGDATA=/var/lib/pgsql/data


指定されているデータディレクトリを作成します。

mkdir -p /var/lib/pgsql/data

*****終わり*****


私の場合は、「/var/lib/pgsql/data」ディレクトリが存在して、中にファイルがありました。


# ls -l /var/lib/pgsql/data

合計 124

-rw------- 1 postgres postgres     3  5  3  2019 PG_VERSION

drwx------ 7 postgres postgres  4096 10  5  2019 base

-rw------- 1 postgres postgres    30  4 28 00:00 current_logfiles

・・・


次に、見つけたページに書いてあるように、postgresユーザーでデータベースクラスタを初期化します。


# sudo -i -u postgres

$ initdb  -D '/var/lib/pgsql/data'

initdb: エラー: ディレクトリ"/var/lib/pgsql/data"は存在しますが、空ではありません

新規にデータベースシステムを作成したいのであれば、ディレクトリ

"/var/lib/pgsql/data"を削除するか空にしてください。

または、initdb"/var/lib/pgsql/data"以外の引数で実行してください。


次に、「/var/lib/pgsql/data」ディレクトリを空にします。


$ cd /var/lib/pgsql/data

$ ls -l

合計 124

-rw------- 1 postgres postgres     3  5  3  2019 PG_VERSION

drwx------ 7 postgres postgres  4096 10  5  2019 base

-rw------- 1 postgres postgres    30  4 28 00:00 current_logfiles

・・・

$ rm -rf *

$ ls -l

合計 0


再度、postgresユーザーでデータベースクラスタを初期化します。


$ initdb -D '/var/lib/pgsql/data'


postgresqlを起動します。


$ exit

# systemctl start postgresql.service

# systemctl status postgresql.service

postgresql.service - PostgreSQL database server

     Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)

     Active: active (running) since Tue 2020-04-28 **:**:** JST; 1min 50s ago

    Process: 16201 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)


postgres が正常に動いています。


バックアップしたデータを元に戻します。


# su postgres

$ createdb php

$ psql php < /data/backup_pgsql/php_27.sql

ここで、「postgres」以外のユーザーがいないとのエラーメッセージが出たら、そのユーザーを追加登録して再度実行します。

※私は「webmin」でユーザーを作成しているので、作成の参考になりません。

Create a new user.」をクリックする。

Username」欄にユーザー名を入力する。

他の欄は初期設定のままで「Create」をクリックする。

※ユーザー「postgres」との違いは、「Can create databases?」欄が私の作成したユーザーでは「No」となっているだけです。

$ psql php < /data/backup_pgsql/php_27.sql



これで、Fedora32 Postgresql が使えるようになりました。


Posted by 山田 雄一郎 at 18:25
この記事のURL
https://blog.canpan.info/hofu_nanboku/archive/470
プロフィール

山田 雄一郎さんの画像
山田 雄一郎
プロフィール
ブログ
リンク集
https://blog.canpan.info/hofu_nanboku/index1_0.rdf
https://blog.canpan.info/hofu_nanboku/index2_0.xml