GNU/Linux >> Linux の 問題 >  >> Linux

初めてpostgresqlを設定するには?

他の回答は、私にとって完全に満足できるものではありませんでした。 Xubuntu 12.04.1 LTS で postgresql-9.1 が機能したのは次のとおりです。

<オール>
  • ユーザー postgres でデフォルトのデータベースに接続します:

    <ブロック引用>

    sudo -u postgres psql テンプレート 1

  • ユーザー postgres のパスワードを設定し、psql を終了します (Ctrl-D):

    <ブロック引用>

    暗号化されたパスワード「xxxxxxx」で ALTER USER postgres;

  • pg_hba.conf を編集します ファイル:

    <ブロック引用>

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    postgres に関する行で「peer」を「md5」に変更します。

    <ブロック引用>

    ローカル すべて postgres 仲間 md5

    実行している postgresql のバージョンを確認するには、/etc/postgresql の下のバージョン フォルダーを探します。 .また、VIM の代わりに Nano やその他のエディターを使用することもできます。

  • データベースを再起動してください:

    <ブロック引用>

    sudo /etc/init.d/postgresql 再起動

    (ここで psql -U postgres で動作するかどうかを確認できます ).

  • あなたと同じ名前のユーザーを作成します (検索するには whoami と入力します) ):

    <ブロック引用>

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    このオプションは、postgresql に、ログイン、データベースの作成、新しいロールの作成が可能な、スーパーユーザーであり、暗号化されたパスワードを持つユーザーを作成するように指示します。本当に重要なのは -P -E で、暗号化されるパスワードを入力するよう求められます。また、-d で createdb を実行できます。 .

    パスワードに注意 :最初に新しいパスワード (新しいユーザー用) を 2 回尋ね、次に postgres パスワード (ステップ 2 で指定したもの) を 1 回尋ねます。

  • ここでも pg_hba.conf を編集します ファイル (上記の手順 3 を参照) を編集し、「すべての」他のユーザーに関する行で「peer」を「md5」に変更します。

    <ブロック引用>

    ローカル すべて すべて 仲間 md5

  • (手順 4 と同様に) 再起動し、-U postgres なしでログインできることを確認します。

    <ブロック引用>

    psql テンプレート 1

    単なる psql を実行すると、 、あなたと同じ名前を持つデフォルトのデータベースに接続しようとするため失敗します(つまり、 whoami )。 template1 は、最初からここにある管理データベースです。

  • 現在 createdb <dbname> 動作するはずです。


  • Linux では、PostgresQL は通常、root ユーザーが postgres スーパーユーザー postgres としてログインできるように構成されています。 シェル (コンソールまたは ssh) から。

    $ psql -U postgres
    

    次に、通常どおり新しいデータベースを作成します:

    CREATE ROLE myuser LOGIN password 'secret';
    CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;
    

    これは pg_hba.conf に触れなくても動作するはずです .ネットワーク経由で何らかの GUI ツールを使用してこれを実行できるようにしたい場合は、pg_hba.conf をいじる必要があります。 .


    使用できる方法は 2 つあります。どちらもユーザーを作成する必要がありますおよび データベース。

    <オール>
  • createuser と createdb の使用

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  • SQL 管理コマンドを使用し、TCP 経由でパスワードを使用して接続する

    $ sudo -u postgres psql postgres
    

    そして、psql シェルで

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    その後、ログインできます

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    ポートがわからない場合は、 postgres として、次を実行することでいつでも取得できます。 ユーザー、

    SHOW port;
    

    または、

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    
  • 補足:postgres ユーザー

    しないことをお勧めします postgres の変更 ユーザー。

    <オール>
  • 通常は OS からロックされています。 postgres としてオペレーティング システムに「ログイン」することは想定されていません。 . postgres として認証するには root が必要です .
  • 通常はパスワードで保護されておらず、ホスト オペレーティング システムに委任されます。これは良いことです .これは通常、postgres としてログインすることを意味します これは、SQL Server の SA に相当する PostgreSQL です。 、基になるデータ ファイルへの書き込みアクセス権が必要です。そして、それは、いずれにせよ、通常は大混乱を引き起こす可能性があることを意味します。
  • これを無効にしておくことで、指名されたスーパーユーザーによるブルート フォース攻撃のリスクを排除できます。スーパーユーザーの名前を隠したり隠したりすることには利点があります。

  • Linux
    1. Postgres 13Ubuntu20.04をインストールして設定する方法

    2. Centos8にPostgres13をインストールして設定する方法

    3. Debian11にPostgres14をインストールして設定する方法

    1. Fedora34にPostgres14をインストールして設定する方法

    2. Ubuntu 18.04 に PostgreSQL サーバーをインストールする方法

    3. 別の user.home 用に Jenkins を構成する

    1. Postgres 14Ubuntu20.04をインストールして設定する方法

    2. ワイルドカード*はコマンドとしてどのように解釈されますか?

    3. Dockerコンテナのタイムゾーンを変更する方法