sql >> データベース >  >> RDS >> PostgreSQL

Ubuntu20.04DigitalOceanにPostgreSQL12をインストールする方法

    PostgreSQLの機能と使用例

    PostgreSQLは、オープンソースのオブジェクトリレーショナルデータベース管理システム(DBMS)です。これは、主にeコマースプラットフォーム、支払いトランザクション、およびさまざまなデータウェアハウジングソリューションに使用される高度なデータベース管理および分析システムです。 30年以上前から存在しており、毎年定期的に更新され、トリガー、ユーザー定義の型と関数、サブクエリなどのさまざまなSQL関数をサポートしています。

    PostgreSQLは、世界で最も先進的なオープンソースデータベースの1つです。これは、いくつかの本番および開発のユースケースに適しています。パーティション化とクエリパフォーマンスの強化(特に大規模なデータセットに対して)、最適なスペース使用率のためのBツリーの強化、複数列の最一般値(MCV)統計、クエリのインライン化とチェックサム制御を備えた一般的なテーブル式など、多くの利点があります。

    DigitalOcean上のUbuntu20.04に関するいくつかの言葉

    Ubuntuは人気のあるオープンソースのデスクトップオペレーティングシステムです。 Ubuntu 20.04には、ZFSスナップショットを管理するツール、主要なカーネルバンプ、セキュリティの向上など、多数の最先端機能が含まれています。 DigitalOceanクラウドプラットフォームは、クラウドでアプリケーションを開発、管理、拡張するための堅牢なインフラストラクチャとグローバルな可用性を提供します。開発者は、コンピューティング、ストレージ、データベース、およびネットワーキング製品を使用して、Webおよびモバイルアプリケーション、ストリーミングサービス、ゲーム、SaaSソリューションなどを構築できます。共有プライベートネットワーキング、ワンクリックDevOpsツール、SSDハードドライブなどの機能を提供するDigitalOceanは、ミッションクリティカルなソリューションに柔軟で安全かつシンプルな選択肢です。

    このチュートリアルでは、DigitalOceanUbuntu20.04にPostgreSQLをインストールする方法の詳細な手順を説明します。面倒なことはせずに、始めましょう!

    数回クリックするだけでPostgreSQLを自動的にセットアップしますか?

    ScaleGridがわずか数分でDigitalOceanにPostgreSQLをデプロイするのにどのように役立つかについて学び、セットアップ、構成、およびインストールプロセス全体を完了させてください! PostgreSQL on DigitalOceanページをチェックして、ScaleGridを使用して、データベースの管理ではなく、製品の開発に集中できるようにする方法を確認してください。または、ScaleGridを使用してDigitalOceanでPostgreSQLを開始する方法についての簡単なガイドに従って、30日間の無料トライアルを試してみてください!

    PostgreSQLをインストールするための前提条件

    DigitalOcean Ubuntu20.04へのPostgreSQL12の実際のインストールに飛び込む前に、システムが次の前提条件を満たしていることを確認する必要があります。

    • 特定のサービスへの接続のみが許可されるようにするには、サーバーに少なくとも基本的なUFWファイアウォールが必要です。
    • システムを新しいサーバーインスタンス用に更新し、再起動する必要があります。これを行うには、次のコマンドを使用します。
      • sudo apt update && sudo apt upgrade –y
      • sudo reboot

    Ubuntu20.04DigitalOceanへのPostgreSQLのインストール

    aptパッケージマネージャーシステムを使用して、Ubuntu20.04の公式/デフォルトリポジトリを使用してPostgreSQL12をインストールできます。これを行う前に、サーバーのローカルパッケージインデックスを更新しておく必要があります(上記の前提条件を参照)。

    リポジトリには、次のようなさまざまなパッケージ(サードパーティのアドオンを含む)が含まれています。

    • postgresql-client
    • postgresql
    • libpq-dev
    • postgresql-server-dev
    • pgadminパッケージ

    次に、追加のユーティリティと機能を提供するpostgresql-contribモジュールとともに完全なPostgreSQL12パッケージをインストールします。これは、次のコマンドを実行してインストールできます。

    sudo apt install postgresql postgresql-contrib –y

    次に、次のコマンドを実行して、システムの再起動時にPostgreSQLサービスを開始します。

    sudo systemctl start postgresql

    システムの起動時にPostgreSQLサービスを自動的に開始するには、次のコマンドを実行します。

    sudo systemctl enable postgresql

    systemctl status postgresqlを実行して、PostgreSQLサービスが期待どおりに実行されていることを確認します。

    sudo systemctl status postgresql

    これにより、以下のスクリーンショットのように、PostgreSQLサービスのステータスが返され、アクティブと表示されます。

    PostgreSQL初期化のカスタマイズ

    インストール後、initdbコマンドを使用してデータベースクラスターを作成できます。 initdbコマンドは、rootユーザーからではなく、データベースユーザー内から実行する必要があります。 rootユーザーは、postgresユーザーがchown(所有者の変更コマンド)できる空のディレクトリを作成できます。このディレクトリには、データがテンプレートとして含まれ、デフォルトですべてのデータベースにコピーされます。 postgresユーザーから、適切なオプションとディレクトリ名を使用して次のコマンドを呼び出すことができます。

    initdb [option...] [ --pgdata | -D ] directory

    initdbコマンドは、さまざまなフラグを使用して認証されたユーザーとして実行し、特定のディレクトリにdbテンプレートを作成できます。

    上のスクリーンショットに見られる特定のフラグのリストを以下に示します。

    • --encoding UTF8 (ロケールに基づいて任意にすることができます)。
      • Encodingフラグは、データベーステンプレートのエンコーディングを設定します。そのテンプレートを使用して作成されたすべてのデータベースも、個別に指定されていない限り、同じエンコード方法を使用します。さまざまな言語で利用できる多くのエンコード方法があります。
    • --pgdata test (このフラグは、データベースデータを格納するための「test」という名前のディレクトリを作成します。)
      • データベースクラスタがデータを保存するディレクトリを指定します。
    • -A peer (これは、pg_hba.confファイルで使用される認証方法を指定します。)
      • pg_hba.confで使用されるローカルユーザー(ホストおよびローカル回線)のデフォルトの認証方法を指定します。 initdbは、レプリケーション接続だけでなく非レプリケーションに対しても、指定された認証方法を使用してpg_hba.confエントリを事前入力します。
    • -k (データチェックサムを使用してI / Oエラーをチェックします)
      • I / Oシステムの破損を検出するために、すべてのデータページのデータチェックサムを指定します。ただし、これによりデータベースの処理速度が低下します。

    PostgreSQLデータベースの保護

    インストール中に、postgresという名前の新しいユーザーがデフォルトで自動的に作成されます。このユーザーは完全なシステム権限を持っているため、強力なパスワードでユーザーアカウントを保護することが重要です。

    sudo passwd postgres

    次に、postgresユーザーアカウントに切り替えます。ユーザーにはsudo権限が必要です。

    sudo su – postgres

    PostgreSQLのバージョンは実行することで確認できます

    psql -c "SELECT version();"

    postgresのパスワードを変更するには ユーザー使用コマンド:

    psql -c "ALTER USER postgres WITH PASSWORD 'MyNewPassword'";

    注:このパスワードは、postgresの場合にのみ適用されます ユーザーはネットワーク経由でPostgreSQLに接続します。

    Postgresデータベースにアクセスするには、次のコマンドでPostgreSQLデータベースにログインできます。

    psql postgres

    デフォルトでは、PostgreSQLはデータベースにアクセスするためにローカルシステムユーザーからのパスワード認証を必要としません。これは「ピア認証」と呼ばれます。ただし、パスワード認証はpg_hba.conf内から有効にできます。 ファイル。

    このpg_hba.confを編集するには ファイル、\qを使用 postgresシェルを終了し、Linuxシェルに入るコマンド。 Linuxシェル内から、pg_hba.confを編集します。 ファイル。ファイルを編集する前に、必ずバックアップを取ってください。

    sudo cp /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/12/main/pg_hba.conf.bak

    次に、nanoエディターを使用してファイルを編集します

    nano /etc/postgresql/12/main/pg_hba.conf

    「Unixドメインソケット接続のみ」でローカル回線を見つけて、METHODを変更します peerの属性 md5へ 。

    PostgreSQLサービスをリロードして、新しい設定を適用します。

    sudo systemctl reload postgresql

    ここで、postgresという名前のユーザーが2人いることに注意してください。 1つはデータベースに接続してアクセスするためのLinuxユーザーであり、もう1つはデータベース内で管理者の役割を実行するために使用されるデータベースユーザーです。

    PostgreSQLデータベースの構成

    postgresql.confファイルの必要なパラメーターを変更することにより、リスンアドレスとポート用にPostgreSQLを手動で構成できます。

    デフォルトでは、PostgreSQLポート5432が使用され、ローカルホストでリッスンします。これは、構成ファイルを編集することで変更できます。

    sudo nano /etc/postgresql/12/main/postgresql.conf

    変更を加えると、サービスが再開されます。

    sudo systemctl restart postgresql

    PostgreSQL12での新しい役割の作成

    PostgreSQL 12での認証と承認は、「ロール」の概念を介して行われます。ここで、役割とは、ユーザーとグループの両方を指す柔軟な用語です。

    次のコマンドを使用して、postgresユーザーにログインします。

    sudo su postgres

    新しいロールは、createrole –interactiveコマンドを使用してコマンドラインからインタラクティブに作成できます。ここで、–interactiveフラグを使用すると、新しい役割の名前と、この役割にスーパーユーザー権限を割り当てる必要があるかどうかを確認するプロンプトが作成されます。

    新しいユーザーは、ユーザーpostgresqlシェルの外部で次のように新しい役割で作成できます。

    createuser –interactive

    newuserコマンドの出力は次のようになります。

    PostgreSQLサーバーでのデータベースの作成と削除

    PostgreSQL 12では、新しいロールが作成されるときに、ロールがデフォルトでデータベースに接続しようとするため、同じ名前の新しいデータベースが存在する必要があります。したがって、ユーザーliamが作成される前のセクションと同様に、次のコマンドを使用して、その名前のデータベースを作成できます。

    createdb liam

    PostgreSQL 12には、必要に応じてデータベースを作成するための複数のパスがあります。

    • postgresアカウントからログインした場合:postgres@server:~$ createdb liam
    • sudoを使用する 、sudo –u postgres created liam

    データベースを削除するには、

    を使用できます。

    dropdb liam

    新しい役割でPostgresプロンプトを開く

    Postgresデータベースおよびロールと同じ名前のLinuxユーザーを作成して、IDベースの認証でログインできます。

    Linuxユーザーは、コマンドラインから次のように入力して作成できます(まだ存在しない場合)。

    sudo adduser noah

    ユーザーを作成したら、次のコマンドを使用してログインできます;

    sudo -u noah psql

    現在のデータベースとユーザー情報には、;

    を使用してアクセスできます。

    \conninfo

    PostgreSQL管理

    テーブルの作成と削除

    SQLコマンドCREATE TABLE データベース内に任意のテーブルを作成するために使用できます。コマンドでは、列のリストと各列のデータ型を指定する必要があります。

    CREATE TABLE customers (customer_id int, first_name varchar(80), last_name varchar(80));

    このコマンドは、「customers」という名前のテーブルを作成します。最初の列には、整数型の顧客IDが保持されます。 2列目と3列目は文字タイプで、最大80文字の顧客の名前と名前が含まれます。

    この新しいテーブルは、\dと入力すると表示されます。 。

    次のように入力すると、テーブルを削除できます。

    DROP TABLE customers;

    テーブル内のデータの挿入、選択、および削除

    データは行の形式でPostgreSQLテーブルに追加されます。各行は、個別のデータセットを表します。 INSERT INTOコマンドを使用して、データを行に挿入できます。コマンド名の後には、「テーブル名」(次の例ではcustomers)、キーワードVALUES、コンマで区切られた値のリストが続きます。

    INSERT INTO customers VALUES (1, 'Owen', 'Buyer');

    INSERT INTO customers VALUES (2, 'Luke', 'Seller');

    表の内容は、SELECTコマンドを使用して表示できます。

    SELECT * FROM customers;

    DELETEを使用して行を削除できます 指図。 WHERE キーワードは、条件付きで行を選択するために使用されます。

    DELETE FROM customers WHERE last_name = 'Seller';

    すべての行を削除するには、次のように入力します。

    SELECT * FROM customers;

    テーブルからの列の追加と削除

    PostgreSQL 12には、既存のテーブルに列を簡単に追加または削除する機能があります。

    ALTER TABLE コマンドはADDと一緒に使用されます キーワードを使用して、既存のテーブルに列を追加します。このフィールドは、テーブル内の既存の行に対して空に設定されています。

    ALTER TABLE customers ADD branch_id int;

    同じコマンドがDROPで使用されます 指定した列をテーブルから削除するキーワード。

    ALTER TABLE customers DROP first_name;

    テーブル内のデータの更新

    テーブル内のレコードの追加と削除の他に、それらを変更することもできます。これは、UPDATEを使用して実行できます 指図。新しい値で編集する必要がある列を指定する必要があります。

    UPDATE customers SET last_name= 'Buyer' WHERE customer_id = '1';

    本番環境に関する考慮事項

    PostgreSQL 12は、実稼働環境で安全に使用できます。このデータベースは非常に安定しているため、大規模に実装しても問題はありません。詳細については、こちらの以前の記事を参照してください。

    結論

    このチュートリアルでは、DigitalOceanで実行されているUbuntu20.04サーバーでPostgreSQL12をセットアップする方法を説明しました。 PostgreSQL 12は、標準のBツリーインデックスのスペース管理の改善や、インデックスの同時再構築とインデックス作成のカバーなど、多くの新機能と高度な機能を備えた複雑なアプリケーションです。バージョン12は、インラインWITHクエリとICU提供の照合もサポートし、パーティショニングを改善し、テーブルストレージにさまざまなメソッドを作成して使用するためのプラグ可能なテーブルストレージインターフェイスを提供します。

    PostgreSQLサーバーのセットアップと使用の基本を理解したので、マネージド代替を試してみませんか? ScaleGridのようなマネージドサービスを使用すると、ボタンをクリックするだけで、セットアップ、インストール、および構成プロセス全体を完了することができます。今日から30日間の無料トライアルを開始して、自分の目で確かめてください。クレジットカードは必要ありません。最初のデータベースを数分でセットアップできます。

    ここでは、インストールの基本について説明し、一般的なデータベース管理の手順についても説明しました。このガイドがお役に立てば幸いです。


    1. MySQLでUNIONを使用する場合の「エラー1054(42S22):「order句」の不明な列「…」」を修正

    2. 列のサイズを変更する方法

    3. 修正:SQL Server(およびSQL Edge)の「リカバリモデルがSIMPLEである間は、ステートメントBACKUPLOGは許可されません」

    4. TSQLでPRINTバッファをフラッシュするにはどうすればよいですか?