Ubuntu16.04にPostgreSQLをインストールする方法

前書き ##

**PostgreSQL **は、カリフォルニア大学バークレー校のコンピュータサイエンス学部によって開発されたバージョン4.2に基づくオブジェクト[リレーショナルデータベース](https://cloud.tencent.com/product/cdb-overview?from=10680)管理システム(ORDBMS)です。 PostgreSQLはほとんどのSQL標準をサポートし、複雑なクエリ、外部キー、トリガー、ビュー、トランザクションの整合性、MVCCなどの他の多くの最新機能を提供します。同様に、PostgreSQLは、新しいデータタイプ、関数、演算子、集計関数、インデックスを追加するなど、さまざまな方法で拡張できます。 PostgreSQLは、私的、商業的、または学術的な研究のために、無料で使用、変更、および配布できます。 [PostgreSQL](http://www.postgresql.org/)リレーショナルデータベースシステムは、強力で拡張可能な標準のオープンソースデータベースプラットフォームです。このチュートリアルは、Ubuntu 16.04 LTS(Xenial Xerus)上のTencent CloudCVMサーバーにPostgreSQLをインストールして構成するのに役立ちます。

準備 ##

sudo apt-get update && sudo apt-get upgrade

注意
このチュートリアルは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドの前には sudoが付いています。

PostgreSQLのインストール

UbuntuパッケージリポジトリからPostgreSQLをインストールします。

sudo apt-get install postgresql postgresql-contrib

PostgreSQLの構成

Postgresユーザーを変更する

デフォルトでは、PostgreSQLはデータベースソフトウェアにアクセスするために postgresという名前のLinuxユーザーを作成します。

警告
postgresを使用しているユーザーは、他の目的(たとえば、他のネットワークへの接続)には使用しないでください。これを行うと、データベースのセキュリティに深刻な脅威がもたらされます。

sudo passwd postgres
su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'newpassword';"

このユーザーは postgresLinuxユーザーとは異なることに注意してください。 Linuxユーザーはデータベースへのアクセスに使用され、PostgreSQLユーザーはデータベースの管理タスクを実行するために使用されます。

この手順で設定したパスワードは、ネットワーク経由でデータベースに接続するために使用されます。デフォルトでは、ピア認証がローカル接続に使用されます。

データベースを作成

このセクションのコマンドを postgresLinuxユーザーとして実行します。

createdb mytestdb
psql mytestdb
psql(9.5.2)
Type "help"for help.
​
mytestdb=#

これは、SQLコマンドを発行できるPostgreSQLクライアントシェルです。使用可能なコマンドのリストを表示するには、 \ hコマンドを使用します。 \ hの後に特定のコマンドを追加する方法について詳しく知ることができます。

テーブルを作成

このセクションには、従業員の姓名を使用してテストデータベースを作成し、各名前に一意のキーを割り当てる例が含まれています。独自のテーブルを作成する場合、必要な数のパラメーター(列)を指定して、適切な名前を付けることができます。このセクションのコマンドは、「データベースの作成」セクションのステップ2で開いたPostgreSQLシェルから実行します。

CREATE TABLE employees(employee_id int, first_name varchar, last_name varchar);
INSERT INTO employees VALUES(1,'John','Doe');
SELECT * FROM employees;

これにより、次の出力が生成されます。

 employee_id | first_name | last_name
- - - - - - - - - - - - - +- - - - - - - - - - - - +- - - - - - - - - - - 1| John       |Doe(1 row)

\ qコマンドを入力して、PostgreSQLシェルを終了します。

PostgreSQLロールを作成

PostgreSQLは、アクセス許可を指定するために使用されるロールを介してデータベースアクセス許可を付与します。ロールは、Linuxの「ユーザー」と同様の機能を持っていると理解できます。さらに、役割はLinuxの「グループ」と同様に、他の役割のセットとして作成することもできます。PostgreSQLの役割はグローバルに適用できるため、作成する必要はありません。同じサーバー上の複数のデータベースへのアクセスを許可する場合は、同じものを2回使用します。役割。

このセクションのコマンド例は、 postgresLinuxユーザーとして実行する必要があります。

createuser examplerole --pwprompt

ロールを削除する必要がある場合は、 createuserの代わりに dropuserコマンドを使用できます。

psql mytestdb

デフォルトでは、 postgresデータベースユーザーとして接続します。

GRANT ALL ON employees TO examplerole;

\ qと入力して、PostgreSQLシェルを終了します。

ローカルPostgreSQLアクセスのセキュリティを確保する

PostgreSQLはデフォルトでピア認証を使用します。これは、データベース接続が、接続されたデータベースを所有またはアクセス許可を持っているローカルシステムユーザーに付与されることを意味します。このタイプの認証は、特定のシステムユーザーがローカルプログラム(スクリプト、異なるユーザーが所有するCGI / FastCGIプロセスなど)を実行する状況で非常に役立ちますが、セキュリティを強化するために、アクセスするためにパスワードが必要になる場合があります。あなたのデータベース。

特に明記されていない限り、このセクションのコマンドは postgresLinuxユーザーとして実行する必要があります。

# " local" is for Unix domain socket connections only
local    all        all             peer`

この行の peer md5に置き換えて、MD5ハッシュによるパスワード認証をアクティブにします。

exit
sudo service postgresql restart
su - postgres
psql -U examplerole -W mytestdb

exampleroleユーザーのパスワードを入力し、 psqlによってデータベースへのシェルアクセスを許可するように求められます。データベースを使用する場合は、 \ zコマンドを使用して各テーブルのアクセス許可を確認できます。

詳しくは ##

このトピックの詳細については、次のリソースを参照してください。これらの有用な情報を提供したいと考えていますが、外部でホストされている資料の正確性や適時性を保証することはできませんのでご注意ください。

[ PostgreSQLオンラインドキュメント](http://www.postgresql.org/docs/)

[ psqlマンページ](http://www.rootr.net/man/man/psql/1)

自作サーバーは必然的にこのような問題に直面します。SSLの設定は非常に面倒です。一部の人にとっては楽しいことですが、実稼働環境で使用する場合は、[クラウドリレーショナルデータベース](https://cloud.tencent.com/product/cdb-overview?from=10680)を直接使用することをお勧めします。 )、クラウドリレーショナルデータベースを使用すると、リレーショナルデータベースをクラウドに簡単に展開、管理、拡張して、安全で信頼性が高く、スケーラブルで柔軟なオンデマンドクラウドデータベースサービスを提供できます。 Tencent Cloudリレーショナルデータベースは、[MySQL](https://cloud.tencent.com/product/cdb?from=10680)、SQL Server、[MariaDB](https://cloud.tencent.com/product/tdsql?from=10680)、PostgreSQLデータベースエンジンを提供し、データベースエンジンのパフォーマンスを最適化します。クラウドリレーショナルデータベースは、災害復旧、バックアップ、復旧、監視、移行などのデータベース運用および保守ソリューションの完全なセットを提供する、可用性の高いホスティングサービスです。これにより、時間のかかるデータベース管理タスクから解放され、より多くのことが可能になります。アプリケーションとビジネスにより多くの時間を集中します。

MySQLを構成したくない場合は、クラウドデータベースを直接使用できます。[TencentDB for MySQL](https://cloud.tencent.com/product/cdb?from=10680)を使用すると、ユーザーはMySQLデータベースをクラウドに簡単にデプロイして使用できます。

LinuxおよびPostgreSQLのその他のチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。


参照:「Ubuntu16.04にPostgreSQLをインストールする方法」

Recommended Posts

Ubuntu16.04にPostgreSQLをインストールする方法
Ubuntu20.04にPostgreSQLをインストールする方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVirtualBoxをインストールする方法
Ubuntu20.04にElasticsearchをインストールする方法
UbuntuにProtobuf3をインストールするための詳細なチュートリアル
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu16.04にNode.jsをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にVagrantをインストールする方法
Ubuntu14.04にBacula-Webをインストールする方法
Ubuntu20.04にGitをインストールする方法
Ubuntu18.04にAnaconda3をインストールする方法
Ubuntu18.04にMemcachedをインストールする方法
Ubuntu16.04にJenkinsをインストールする方法
Ubuntu14.04にMemSQLをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
Ubuntu14.04にMailpileをインストールする方法
Ubuntu16.04にPrestaShopをインストールする方法
Ubuntu20.04にSkypeをインストールする方法
Ubuntu20.04にJenkinsをインストールする方法
Ubuntu18.04にPython3.8をインストールする方法
Ubuntu18.04にKVMをインストールする方法
Ubuntu20.04にKVMをインストールする方法
ubuntu14.04にopencv3.0.0をインストールする方法
Ubuntu20.04にAnacondaをインストールする方法
Ubuntu16.04にPrometheusをインストールする方法
Ubuntu18.04にJenkinsをインストールする方法
Ubuntu20.04にApacheをインストールする方法
Ubuntu20.04にRをインストールする方法
Ubuntu16.04にMoodleをインストールする方法
Ubuntu14.04にSolr5.2.1をインストールする方法
Ubuntu16.04にTeamviewerをインストールする方法
CentOS8にPostgresqlをインストールする方法
Ubuntu20.04にMariaDBをインストールする方法
Ubuntu20.04にNginxをインストールする方法
Ubuntu20.04にMonoをインストールする方法
Ubuntu20.04にGoをインストールする方法
Ubuntu20.04にZoomをインストールする方法
Ubuntu16.04にNginxをインストールする方法
Ubuntu20.04にOpenCVをインストールする方法
Ubuntu20.04にSpotifyをインストールする方法
Ubuntu18.04にPostmanをインストールする方法
Ubuntu16.04にGo1.6をインストールする方法
Ubuntu18.04にGoをインストールする方法
Ubuntu14.04にMySQLをインストールする方法
Ubuntu18.04にVLCをインストールする方法
Ubuntu20.04にTeamViewerをインストールする方法
Ubuntu20.04にWebminをインストールする方法
Ubuntu18.04にpostgresql-10をインストールします
Ubuntu18.04にDockerComposeをインストールする方法
RaspberryPiにUbuntuをインストールする方法
Ubuntu14.04にBaculaServerをインストールする方法
Ubuntu 18.04(linux)にMySQLをインストールする方法
Raspberry Pi4にUbuntu19.10をインストールする方法