目次
PostgreSQLの設定
PostgreSQL がインストールされたら、postgres アカウントを入力して PostgreSQL コンソールに入ります:

ここでは前のテンプレートを使用する必要があります。
设置数据库权限
ホームページ 運用・保守 Linuxの運用と保守 Linux に PostgreSQL と PostGIS をインストールして使用する方法

Linux に PostgreSQL と PostGIS をインストールして使用する方法

Feb 07, 2018 am 09:30 AM
linux postgresql

この記事では、主に Linux での PostgreSQL と PostGIS のインストールと使用方法を紹介し、注意が必要な点を分析して説明しますので、必要な方はぜひ参考にしてください。

PostgreSQL と PostGIS をインストールする

PostgreSQL と PostGIS はすでに人気のあるオープン ソース プロジェクトであり、主要な Linux ディストリビューションの yum または apt パッケージに含まれています。たとえば、Ubuntu の場合は、次のパッケージをインストールするだけです:


$ sudo apt-get install postgresql-client postgresql postgis -y
ログイン後にコピー

RedHat シリーズの場合、インストールしてください:


$ sudo yum install postgresql-server postgresql postgis
ログイン後にコピー

初期インストール後、postgres という名前のデータベースと postgres という名前のデータベース ユーザーが生成されます。デフォルト。ここで、postgres という名前の Linux システム ユーザーも生成されることに注意してください。今後PostgreSQLを運用する際には、この新しく作成したpostgresユーザーで運用する必要があります。

PostgreSQLの設定

ソースコードからインストールする場合

ソースコードからインストールすることは推奨されません。ソースコードからインストールしようとしましたが、面倒すぎて、さまざまなmake installでエラーが発生します。最後にrpmを使ってインストールしました。しかし、時間をかけて調査し、無事にインストールできたので、記録しておきます。ただし、エラーが発生する可能性があるため、ソース コードからインストールしたい場合は、ロールバックする準備をしてください。

ソースのコンパイルと make install インストールを使用している場合、このセクションでは追加の設定が必要です。

CentOSシリーズのインストールにも必要なようですが…

デフォルトのmake install後のPostgreSQLインストールディレクトリは/usr/local/pgsql/

まず、このリンクの参考によれば、環境変数を設定する必要があります


$ set $PGDATA = "/usr/local/pgsql/database"
ログイン後にコピー

しかし、pg_ctl startを実行すると、エラーが表示されます:


pg_ctl: directory "/usr/local/pgsql/database" is not a database cluster directory
ログイン後にコピー

この場合、実際のデータベースを作成するには、公式PostGreSQLドキュメントの手順に従う必要があります。 :

PostgreSQL: ドキュメント: 9.1: データベースクラスターの作成

まず、postgres という名前のユーザーアカウントを作成します


$ usradd postgres
$ sudo chown postgres /usr/local/pgsql/database
ログイン後にコピー

次に、このアカウントを入力してデータベースを作成します


$ sudo su postgres
$ initdb -D /usr/local/pgsql/database/
ログイン後にコピー

今回、シェルは次のように出力します:


The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".

Data page checksums are disabled.

fixing permissions on existing directory /usr/local/pgsql/database ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/database/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
pg_ctl -D /usr/local/pgsql/database/ -l logfile start
ログイン後にコピー

おめでとうございます、次へ PostgreSQL を起動できます:


pg_ctl -D /usr/local/pgsql/database/ -l /usr/local/pgsql/database/psql.log start
ログイン後にコピー

PostgreSQL がインストールされたら、postgres アカウントを入力して PostgreSQL コンソールに入ります:

$ sudo su postgres
$ psql
ログイン後にコピー

Thisこれは、システム ユーザー postgres が同じ名前のデータベース ユーザーとしてデータベースにログインするのと同等です。そうでない場合は、psql を実行するたびにパラメーターでユーザーを指定する必要があり、これは忘れがちです。

psql でパスワードを設定します - ここで設定するパスワードは postgres システム アカウントのパスワードではなく、データベース内のユーザー パスワードであることに注意してください:

postgres=# \password postgres
ログイン後にコピー

次に、プロンプトに従ってパスワードを入力します。

ソース コードから PostGIS をインストールします


ソース コードから PostgreSQL をインストールすることを選択した場合は、まずインストールした PostgreSQL のバージョンを確認する必要があります

次に、PostGIS Web ページにアクセスして PostGIS のバージョンを確認しますに相当します。

最後に、PostGISのバージョンに応じて対応するソースをダウンロードします

最後のインポートが非常に面倒なので、作者はこの段階で行き詰ってしまい、最終的にソースコードからのインストールを断念しました…

PostGIS拡張機能をインポートします


postgresql と postgis によると、バージョンに応じて、パスは若干異なります。これは主にパスにバージョン情報が含まれているためです:

$ sudo su postgres
$ createdb template_postgis
$ createlang plpgsql template_postgis
$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/postgis.sql
$ psql -d template_postgis -f /usr/share/postgresql/9.5/contrib/postgis-2.2/spatial_ref_sys.sql
ログイン後にコピー

上記の操作では、「template_postgis」という空のデータベースが作成されました。このデータベースは空で、postgres ユーザーに属します。このデータベースが「テンプレート」と呼ばれる理由は、このデータベースが導出に使用されることを意味します。

対応する PostGIS パスが異なる可能性があります。失敗した場合は、上記のパスの近くで試して、いくつかの .sql ファイルを見つけて試してください。

.shp ファイルを PostGIS データベースに変換します


.shp を .sql ファイルに変換します


まず、変換する必要がある .shp ファイルが /tmp/demo であると仮定します。 shp を使用し、次の操作を実行します:

$ sudo su postgres
$ cd /tmp
$ shp2pgsql -W GBK -s 3857 ./demo.shp entry > demo.sql
ログイン後にコピー

ここで、最後の文の各部分の意味を説明する必要があります:

    -W GBK: .shp ファイルに中国語の文字が含まれている場合は、これを追加してくださいオプション
  • -s 3857: ファイルの参照座標系を指定します。私の .shp ファイルは EPSG:3857 を使用します
  • ./demo.shp: .shp ファイルのパス
  • エントリ: インポートされるデータベース テーブルの名前を表します - この .shp ファイルがそれぞれを表すと仮定しますエントリーなので「エントリー」と名付けました
  • demo.sql
  • .sql ファイルを取得したら、それを PostgreSQL データベースに直接インポートできます。

PostGIS データベースを作成します


ここでは前のテンプレートを使用する必要があります。

sudo su postgres
psql
CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;
ログイン後にコピー

    newdb: 新しいデータベース名
  • originaldb: 以前の template_postgis です
  • dbuser:你的账户名,我一般使用 postgres

导入 .sql 文件


sudo su postgres
psql
\c newdb
\i demo.sql
\d
ログイン後にコピー

可以看到,.sql 文件已经被导入了。

设置数据库权限

OK,现在我们在本机(服务器 IP 假设是 192.168.1.111)用以下命令登录 psql,会发现一段输出:


$ psql -h 192.168.1.111 -p 5432
psql: could not connect to server: Connection refused
    Is the server running on host "100.94.110.105" and accepting
    TCP/IP connections on port 5432?
ログイン後にコピー

这是因为 PostgreSQL 默认不对外开放权限,只对监听环回地址。要修改的话,需要找到 postgresql.conf 文件,修改值 listen_addresses:


listen_addresses = '*'
ログイン後にコピー

相关推荐:

Python连接PostgreSQL数据库的方法

PHP连接不上PostgreSQL的问题

PHP 读取Postgresql中的数组_PHP教程

以上がLinux に PostgreSQL と PostGIS をインストールして使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheサーバーを再起動する方法 Apacheサーバーを再起動する方法 Apr 13, 2025 pm 01:12 PM

Apacheサーバーを再起動するには、次の手順に従ってください。Linux/MacOS:sudo systemctl restart apache2を実行します。 Windows:Net Stop apache2.4を実行し、ネット開始apache2.4を実行します。 Netstat -A |を実行しますサーバーのステータスを確認するには、STR 80を見つけます。

Debian syslogを学ぶ方法 Debian syslogを学ぶ方法 Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

Apacheを開始できない問題を解決する方法 Apacheを開始できない問題を解決する方法 Apr 13, 2025 pm 01:21 PM

Apacheは、次の理由で起動できません。構成ファイル構文エラー。他のアプリケーションポートとの競合。権限の問題。メモリから。デッドロックを処理します。デーモン障害。 Selinux許可の問題。ファイアウォールの問題。ソフトウェアの競合。

インターネットはLinuxで実行されますか? インターネットはLinuxで実行されますか? Apr 14, 2025 am 12:03 AM

インターネットは単一のオペレーティングシステムに依存していませんが、Linuxはその上で重要な役割を果たしています。 Linuxは、サーバーやネットワークデバイスで広く使用されており、安定性、セキュリティ、スケーラビリティに人気があります。

Apacheの脆弱性を修正する方法 Apacheの脆弱性を修正する方法 Apr 13, 2025 pm 12:54 PM

Apacheの脆弱性を修正する手順は次のとおりです。1。影響を受けるバージョンを決定します。 2。セキュリティの更新を適用します。 3。Apacheを再起動します。 4.修正を確認します。 5.セキュリティ機能を有効にします。

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

See all articles