CentOS(linux)はPostgreSQLをインストールします

前書き##

[ PostgreSQL](https://cloud.tencent.com/product/postgresql?from=10680)は、強力なオープンソースデータベースシステムです。 15年以上の積極的な開発と継続的な改善の結果、PostgreSQLは信頼性、安定性、データの一貫性で業界で高い評価を得ています。現在、PostgreSQLは、Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris、Tru64)、Windowsを含むすべての主流オペレーティングシステムで実行できます。 PostgreSQLは完全にトランザクションセーフなデータベースであり、外部キー、ユニオン、ビュー、トリガー、およびストアドプロシージャを完全にサポートします(また、複数の言語でのストアドプロシージャの開発をサポートします)。整数、数値、ブール値、バイト、文字、日付、時間間隔、時刻など、ほとんどのSQL:2008標準データタイプをサポートします。また、大きなバイナリオブジェクトの保存もサポートします。 、写真、音声、ビデオを含みます。 PostgreSQLには、C / C ++、Java、.Net、Perl、Python、Ruby、Tcl、ODBC、その他の言語などの多くの高レベル開発言語や、さまざまなドキュメント用のネイティブプログラミングインターフェイスがあります。

エンタープライズレベルのデータベースとして、PostgreSQLは、マルチバージョン同時実行制御(MVCC)、ポイントインタイムリカバリ(PITR)、テーブルスペース、非同期レプリケーション、ネストされたトランザクション、オンラインホットバックアップなど、さまざまな高度な機能を誇っています。 、複雑なクエリの計画と最適化、および障害耐性のための先読みログ。国際文字セット、マルチバイトエンコーディングをサポートし、並べ替え、大文字と小文字の処理、ローカル言語でのフォーマットなどの操作をサポートします。また、管理できる大量のデータと、多数のユーザーに許可される同時アクセス時間により、完全にスケーラブルです。現在、多くのPostgreSQLシステムは、実際の実稼働環境で4TBを超えるデータを管理しています。一部のPostgreSQLシステムの制限値を次の表に示します。

制限値:
単一データベースの最大サイズ 無制限
最大データシートサイズ 32 TB
最大単一レコード 1.6TB
最大許容単一フィールド 1GB
1つのテーブルで許可されるレコードの最大数 無制限
1つのテーブル内のフィールドの最大数 250-1600(フィールドタイプによって異なります)
1つのテーブル内のインデックスの最大数 無制限
PostgreSQLの優れたパフォーマンスにより、Linux New Mediaの最優秀データベース賞やLinuxジャーナル編集者によって5回選ばれた最優秀データベース賞など、エンドユーザーや業界から多くの賞を受賞しています。

多数の機能と標準の互換性###

PostgreSQLはSQL標準との互換性が高く、実装する機能はANSI-SQL:2008標準に完全に準拠しています。現在、サブクエリ(FROMのサブクエリを含む)、許可された読み取り、およびシリアル化可能なトランザクション分離レベルが完全にサポートされています。同時に、PostgreSQLには完全なリレーショナルデータベースシステムカタログ機能もあり、単一データベースのマルチモード機能をサポートし、SQL標準で定義されている辞書情報モードを介して各カタログにアクセスできます。

データ統合機能には、(複合)プライマリキー、厳密な制約またはカスケード更新および削除機能を持つ外部キー、エントリチェック制約、一意の制約、およびnull以外の制約が含まれます。

PostgreSQLには、多くの拡張モジュールとより高度な機能もあります。その中には、便宜上シーケンスによって実現される自動インクリメントフィールド、部分的なレコードセットを返すことができるLIMIT / OFFSETオプション、複合、一意、部分的および機能的なインデックス、インデックスがあり、B-Tree、R-Tree、Hash、またはGiSTストレージ方式。

GiST(Universal Search Tree)インデックスは、さまざまな並べ替えアルゴリズムをBツリー、B +ツリー、Rツリー、部分要約ツリー、加重B +ツリー、およびその他の多くの検索ロジックと組み合わせた高度なシステムアルゴリズムです。同時に、ユーザーデータタイプと拡張クエリメソッドの作成を可能にするインターフェイスも提供します。このように、GiSTは、ストレージを指定し、クエリの新しいメソッドを定義する柔軟性をユーザーに提供します。これは、標準のBツリー、Rツリー、およびその他の一般的な検索ロジックによって提供される機能を大幅に上回ります。

GiSTは現在、OpenFTSやPostGISプロジェクトなど、PostgreSQLを使用する他の多くの公開プロジェクトの基盤となっています。 OpenFTS(オープンソースフルテキスト検索エンジン)プロジェクトは、オンラインインデックス作成とデータベース検索にかなりの重みスコアを提供します。 PostGISプロジェクトは、地理情報管理機能をPostgreSQLに追加し、ユーザーがPostgreSQLをGIS空間地理情報データベースとして使用できるようにします。これは、プロのESRIのSDEシステムおよびOracleの空間地理拡張モジュールと同じです。

その他の高度な機能には、テーブルの継承、ルール、およびデータベースインシデント対応機能が含まれます。テーブル継承関数は、元のテーブルに基づく関係を持つ新しいテーブルを作成できます。これにより、データベース設計者はテーブルをベーステーブルとして使用し、ベーステーブルから新しいテーブルを派生させることができます。また、PostgreSQLはこのメソッドを使用して、シングルレベルまたはマルチレベルの継承を実装することもできます。

ルール関数は、クエリの再計算関数を呼び出すために使用されます。これにより、データベース設計者は、さまざまなテーブルまたはビューに基づいてルールを作成し、データベースの元の操作を新しい操作に動的に変更する機能を実現できます。

イベント応答機能は、ユーザーが使用したLISTENおよびNOTIFY命令の後にシステム情報またはイベントを送信する内部通信機能であり、指定されたデータベースイベントの簡単なポイントツーポイント通信または固定ポイント通信を可能にします。トリガーまたはストアドプロシージャから情報を送信できるため、PostgreSQLユーザーは、更新、追加、削除などのデータベースイベントを監視できます。

高度にカスタマイズ可能###

PostgreSQLのストアドプロシージャの開発では、Java、Perl、Python、Ruby、Tcl、C / C ++および独自のPL / pgSQLを含む多くのプログラミング言語を使用できます。PL/ pgSQLはOracleのPL / SQLと非常によく似ており、組み込みです。基本的な算術計算や文字列処理から暗号化された論理計算に至るまで、Oracleとの互換性が高い数百の関数。トリガーとストアドプロシージャは、C言語を使用して開発でき、内部ライブラリファイルとしてデータベースにロードできます。開発の柔軟性が高いため、データベースの機能が拡張されます。これに対応して、PostgreSQLには、開発者が関数で使用できる独自のデータタイプを定義および作成したり、オペレーターの新しい処理方法を定義したりできるフレームワークも含まれています。このような機能により、PostgreSQLにはさまざまな機能があります。幾何学的図形、空間地理、ネットワークアドレス、さらにはISBN / ISSN(国際標準ブック番号/国際標準シリアル番号)を含む高度なデータタイプをすべてシステムに追加できます。

使用できるストアドプロシージャ言語が多数あるため、多くのライブラリインターフェイスも生成されます。これにより、Java(JDBC)、ODBC、Perl、Python、Rubyなどのさまざまなコンパイル済みまたは解釈済みの言語をPostgreSQLで使用できます。 C、C ++、PHP、Lisp、Scheme、Qtなど。

最も重要な点は、PostgreSQLのソースコードを自由に入手できることです。その承認は非常に無料のオープンソースライセンスの下にあります。この承認により、ユーザーはさまざまなオープンソースまたはクローズドソースプロジェクトでPostgreSQLのソースコードを使用、変更、およびリリースできます。ユーザーは、必要に応じてソースコードに変更や改善を加えることができます。したがって、PostgreSQLは、強力なエンタープライズレベルのデータベースシステムであるだけでなく、ユーザーがプライベート、ネットワーク、および商用のソフトウェア製品を開発できるデータベース開発プラットフォームでもあります。

yumsource ##をダウンロード

アドレス:[https://yum.postgresql.org/repopackages.php](https://yum.postgresql.org/repopackages.php)

yumsourceをインストールします##

yum install pgdg-centos10-10-2.noarch.rpm

インストール可能なパッケージを表示する##

yum list postgres*

データベースをインストールします##

yum install postgresql10-server.x86_64 

初期化##

postgresではなく、インストールされているサービスを最初に見つけて、チェックします

[ root@d2-test-2 init.d]# ls /etc/init.d/| grep post
postfix
postgresql-10
udev-post

db ###を初期化します

service postgresql-10 initdb

起動###

service postgresql-10 start

ステータスの表示###

service postgresql status

再起動###

service postgresql restart

接続##

デフォルトでは、rootは接続できません。ユーザーpostgresに切り替える必要があります

$ sudo su - postgres   
- bash-4.1$ psql   
psql(8.4.20)   
Type "help"for help.   
postgres=#    

いくつかの簡単なコマンド##

(1) すべてのデータベースを一覧表示

mysql: show databases
psql: \lまたは\list

(2) データベースの切り替え

mysql: use dbname
psql: \c dbname

(3) 現在のデータベースの下にデータテーブルを一覧表示します

mysql: show tables
psql: \d

(4) 指定されたテーブルのすべてのフィールドを一覧表示します

mysql: show columns from table name
psql: \d tablename

(5) 指定されたテーブルの基本的な状況を表示します

mysql: describe tablename
psql: \d+ tablename

(6) サインアウト

mysql:終了または\q
psql:\q

(7) pgslバージョンを表示

pg_ctl --version

(8) コマンドラインログインデータベース

psql -h 192.168.2.125-p 5432<dbname><username>

(9) パスワードを変更する

psqlログイン

その後、\password postgres

インストール後の構成##

データベースはデフォルトで次のようにインストールされます: / var / lib / pgsql / 10 / data

リスニングIPとポート###を変更します

データディレクトリに入った後、 postgresql.confを編集します

*に変更して、すべてを許可します

# listen_addresses ='*'                 # what IP address(es) to listen on;   
          # comma-separated list of addresses;   
          # defaults to 'localhost','*'= all   
          # ( change requires restart)   
# port =5432                            # (change requires restart)

リブート

service postgresql-10 restart

接続権限を変更する###

デフォルトでは、ローカルユーザーのみがアクセスできるため、IPの変更に加えて、アクセス許可を変更する必要があります。

pg_hba.confを変更します

# TYPE DATABASE  USER    CIDR-ADDRESS     METHOD
# " local" is for Unix domain socket connections only
local all    all               trust
# IPv4 local connections:
host  all    all    127.0.0.1/32     trust
host  all    all    192.168.1.0/24    md5
# IPv6 local connections:
host  all    all    ::1/128       trust

ポイントは

host  all    all    192.168.1.0/24    md5

これは、ネットワークセグメント192.168.1.0上のすべてのホストが、すべての有効なデータベースユーザー名を使用してデータベースにアクセスし、暗号化されたパスワード認証を提供できることを意味します。

その中で、24はサブネットマスクです。これは、ホスト192.168.1.0〜192.168.1.255がアクセスを許可されていることを意味します。

参照##

Recommended Posts

CentOS(linux)はPostgreSQLをインストールします
CentOSはPostgreSQL9.1をインストールします
Centos7はPostgreSQLをインストールします
CentOS7の下にPostgreSQL12をインストールします
LinuxCentos7インストールjdk1.8
Centos 7インストールJDK(Linuxインストールjdk)
Linuxを理解し、CentOSをインストールする
2.5 Linux(Ubuntu18.04)インストールデータベースPostgreSQL
LinuxCentos7インストールredisチュートリアル
LinuxCentosにMySQL8.0.16をインストールします
LinuxにMySQLをインストールする(CentOS 7)
1.5Centos7をインストールする
linuxインストールmongodbでのCentOS6.8
Linux CentOS7にJDKをインストールするための詳細な手順
Linux CentOS7(Windows)にMySQLをインストールする
CentOSLinuxにOracleデータベースをインストールします
CentOS8にPostgresqlをインストールする方法
LinuxCentOS6はPytをコンパイルしてインストールします
VMware15を使用してLinux(CentOS6.5)をインストールします
Centos6はPython2.7.13をインストールします
Centos7.3はnginxをインストールします
CentOSはRedmineをインストールします
Centos7はPython3.6をインストールします。
CentOS7はMySQLをインストールします
Centos7インストールprotobuf
CentOS7はGlusterFSをインストールします
CentOS7.4はZabbix3.4をインストールします
Centos6.5はTomcatをインストールします
CentOSはPython3.6をインストールします
VmwareはCentOS6をインストールします
centos7 install docker-ce 18.01.0
CentOS7.2はMariaDBをインストールします
CentOS7はHadoop3.0.0をインストールします
Centos7はPython2.7をインストールします
Centos7.6はseleniuをインストールします
CentOS7.3はZabbix3をインストールします
Centos7はLAMP + PHPmyadminをインストールします
CentOSインストールmysql
CentOSはopenjdk1.8をインストールします
CENTOS6.5インストールCDH5.12.1(1)
CentOSはPHPをインストールします
Linux01インストールcentOS6.5mini
CentOS6はmist.ioをインストールします
Centos7はDockerをインストールします
CentOS7インストールmysql
centOsはrabbitMQをインストールします
CentOS7はMySQL5.6をインストールします
Centos7はNginxをインストールします
CentOS6.5はCDH5.13をインストールします
Centos7インストールdocker18
CentosはPython3をインストールします
centos7インストールドッカー
CentOSインストールjdk
centos7インストールnginx-rtmp
CentOS8はMySQL8.0をインストールします
Centos6.3はKVMをインストールします
CentOS7はmysql8をインストールします
CentOS7はJava1.8をインストールします
CentOS8はfastdfs6.06をインストールします
CentOS7はGitlabをインストールします
CentOS7はMySQL8をインストールします