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 7でPostgreSQL 9.2のRPMパッケージをインストールして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 が使えるようになりました。 |
|
Fedora31 to Fedora32 で Postgresql が起動しない
Posted by
山田 雄一郎
at 18:25
|
|