質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

2回答

3442閲覧

PostgreSQLでゲストOSトホストOSの接続方法について

roronoazoro

総合スコア113

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2017/06/15 00:54

編集2017/06/17 00:32

vagrant、postgresqlの仮想環境を構築しています。
ゲストOS、centos64の共有ディレクトリ、cd /vagrant/postgres-lesson内でデータベース等をいじって行きたいと考えております。

現在ゲストOS内ではデータベースに繋がることを確認いたしました。(下記画像参照)
そして、ホスト側でも繋げることができるらしいので、設定してみたいのですが、やり方がいまいちわかりません。

現在下記サイトを参考に環境構築しており、**「接続の設定」**で詰まっています。
Vagrant上のCentOSにPostgreSQLを最速で構築する

/var/lib/pgsql/data/postgresql.confの中のfileをいじるようなのですが、ファイルが存在しません。(下記finder画像参照)

情報が足りない点が多々あるかと思いますが、その時は教えて頂けますとありがたいです。
よろしくお願いします。

finder

  1. バージョンの確認
  2. デフォルトデータベースの表示
  3. postgresログイン

vagrant

管理者権限でのpsql -l
イメージ説明

createusr -a -d -U postgres -P testusr
イメージ説明

  1. createuser database testdb owner testusr;
  2. exit
  3. psql tetdb -U testusr

イメージ説明

  1. 管理者権限
  2. psql -U postgres
  3. データベースの作成
  4. \q
  5. psql testdb -U testusr
  6. exit

イメージ説明

サーバーエラー?
Läuft der Server lokal und akzeptiert er Verbindungen auf dem Unix-Domain-Socket »/var/run/postgresql/.s.PGSQL.5432«?
イメージ説明

  1. 仮想環境内共有ディレクトリで管理者権限の実行 (su - postgres)
  2. vagrant]$ psql -h 192.168.33.10 -U postgresの実行
  3. 接続確認
  4. 共有ディレクトリでvagrant]$ psql -h 192.168.33.10 -U postgresの実行
  5. 接続確認

イメージ説明

ホストOS、vagrantfile直下ディレクトリで、ping 192.168.33.10の実行
イメージ説明
これはvagrantfileの設定がされている結果なのでしょうか、、?

また、ホストOS、ゲストOS(今回はcentos64)、ゲストOS内管理者権限(-bash-4.2$)と3つの状態があると思うのですが、それぞれでインストール方法や、記述方法が違くなるのでしょうか?
ホストOSでインストールしたものはゲストOSに反映されていないため、ssh後再度必要なものをインストールしていくといった考え方であっているでしょうか?

また、例えばserverの起動一つとってみても、
postgres -D /usr/local/var/postgres
pg_ctl -l /usr/local/var/postgres/server.log start
sudo service postgresql
brew services start postgresql
などとたくさんあるようで、いつも迷いながら、片っ端から試していくという形なので、知識としてなかなか定着しません。

長文で申し訳ありませんが、どれか一つでもご回答いただけると助かります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

PostgreSQL と、RPM パッケージの両方がからむので、なかなか難しいですね。
以下、こちらの環境で postgresql.conf を見つけるときの手順を示します。
お手元の環境と比べてみて、逐次読み替えてください。

導入した(RPM)パッケージの一覧

bash

1root:~# rpm -qa |grep ^postg 2postgresql96-server-9.6.3-1PGDG.rhel7.x86_64 3postgresql96-9.6.3-1PGDG.rhel7.x86_64 4postgresql96-devel-9.6.3-1PGDG.rhel7.x86_64 5postgresql96-libs-9.6.3-1PGDG.rhel7.x86_64 6

サービス名の取得(RPMパッケージの作り方によりサービス名も異なります)

bash

1root~# systemctl -a | grep postg 2 postgresql-9.6.service (以下略) 3

サービスの状態表示

bash

1root@~# systemctl status postgresql-9.6 2● postgresql-9.6.service - PostgreSQL 9.6 database server 3 Loaded: loaded (/usr/lib/systemd/system/postgresql-9.6.service; enabled; vendor preset: disabled) 4 Active: active (running) since 火 2017-06-06 11:54:23 JST; 1 weeks 1 days ago 5 Main PID: 22430 (postmaster) 6 CGroup: /system.slice/postgresql-9.6.service 7 ├─22430 /usr/pgsql-9.6/bin/postmaster -D /var/lib/pgsql/9.6/data/ 8(以下略) 9

→ これにより、データベースの実体は /var/lib/pgsql/9.6/data/
にあるらしいことがわかる。

bash

1root~# ls /var/lib/pgsql/9.6/data/*.conf 2/var/lib/pgsql/9.6/data/pg_hba.conf 3/var/lib/pgsql/9.6/data/pg_ident.conf 4/var/lib/pgsql/9.6/data/postgresql.auto.conf 5/var/lib/pgsql/9.6/data/postgresql.conf 6

後は、同様に読み替えていけばいいと思います。

投稿2017/06/15 01:56

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roronoazoro

2017/06/15 05:33

詳しいご回答ありがとうございます。 記載していただいと通り確認してみます。。
guest

0

先ずはデフォルトのデータベースの様ですので、ご自身のDB(testdb)を作成されたらどうでしょうか?

ユーザを作成します。(例testusr)
su - postgres
createuser -a -d -U postgres -P testusr

新データベースを作成します
psql -U postgres
create database testdb owner testusr;
\quit

接続確認をします
psql testdb -U testusr

confの在りかを探します多少は権限エラーは出るかも、沢山だったら2>/dev/nullを付けます
find /var -name postgresql.conf 2>/dev/null

postgresql.confと隣のpg_hba.confを修正し再起動します。

ホストからの接続確認
psql -h 192.168.33.10 -U postgres
psql testdb -h 192.168.33.10 -U testusr

投稿2017/06/15 03:09

編集2017/06/15 05:39
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

roronoazoro

2017/06/15 05:29 編集

ドットインストールの通りに途中まで進めてみたため、テーブルが一つ追加されてます。(blogapp) 管理者権限bash内でcreateusr -a -d -U postgres -P testusrをすると、エラーになってしまいます。 本文補足に追加しております。
A.Ichi

2017/06/15 05:39

間違っておりました失礼しました。su - postgres で createuserでお願いします。
roronoazoro

2017/06/15 05:58

ありがとうございます。すみせん、またまた、煮詰まってきました(汗)本文補足に追記いたしました。
A.Ichi

2017/06/15 06:03

create database...は、 psql -U postgres で中に入って行ってください。SQL文と同じ様に
roronoazoro

2017/06/15 06:47

たびたび申し訳ありません。。。追記いたしましたのでよろしくお願いいたします。
A.Ichi

2017/06/15 07:01

create database testdb owner testusr;でお願いします。createuser になっています。
roronoazoro

2017/06/15 09:15

すみません、またぎまたぎやっているため返信遅れてしまっております。 また、別のエラーとなってしまいました。。 過去記事のエラーとも被っている部分がありそうで現在原因突き止め中で、恐縮ではありますが載せさせていただきます。
A.Ichi

2017/06/15 09:25

postgresサーバが立ち上がっていなのではないでしょうか?restartしましたか。
roronoazoro

2017/06/15 12:28

ご返事遅くなり申し訳ありません。サーバーの立ち上げ忘れでした。 無事にデータベースも作成されpostgresql.confとpg_hba.confの編集も、上記本文の添付サイトを参考に修正いたしました。そうすると本来なら、[vagrant@localhost vagrant]$ Vagrantfile直下共有ディレクトリで「ホストからの接続確認」を打ち込むと共有されるということでしょうか? [vagrant@localhost vagrant]$ psql testdb -h 192.168.33.10 -U testusrとすると psql: konnte nicht mit dem Server verbinden: Verbindungsaufbau abgelehnt Läuft der Server auf dem Host »192.168.33.10« und akzeptiert er TCP/IP-Verbindungen auf Port 5432? と返されてしまいます。
A.Ichi

2017/06/15 15:27 編集

ホストからゲストへの接続ができない様です。まずはホストから ping 192.168.33.10 と打ってみてください。Vagrantfileの設定ができていれば応答が返るはずです。 念の為、vagrant sshでfirewallをオフにします su service iptables stop su chkconfig iptables off 再度ホストからの接続テストを行います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問