0
2

More than 3 years have passed since last update.

AWS(Amazon) Cloud9でPostgreSQLを起動しようとしたらpostgresql: unrecognized serviceと表示される問題の解決方法

Last updated at Posted at 2020-01-11

AWS Cloud9でPostgreSQLを起動しようとしたらpostgresql: unrecognized serviceと表示される問題でハマった

##$ rails new . --database=postgresql

新規プロジェクト作成! がしかし、まず最初から入っているpg ~>0.18でなく0.21を入れろと怒られます。なので、Gemfileのpgの所を0.21にしてインストールを試みます。しかしlibpq-fe.h..noとエラーがでるので、必要なライブラリをインストールします。

$ sudo yum install postgresql-devel

再度bundle installで無事gemのインストールはできるはずです。

##$ bundle install

次にdbを作ります。が、ここでdbと接続できないというエラーが発生する。

$ rails db:create
could not connect to server: No such file or directory Is the server running 
locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

これはPostgreSQLが起動してないから?と思って調べてみると、AWS Cloud9にはPostgreSQLプリインストールしてあるからstartさせればOKだぜ!という記事がたくさん見つかる。ので、素直にstartしてみる。

しかし、ここで表題のpostgresql: unrecognized serviceが表示されて進まない。

$ sudo service postgresql start
postgresql: unrecognized service

えーserviceとして認識されてない?とりあえず、PostreSQLに必要だったライブラリ達をインストールする。

$ sudo yum install postgresql postgresql-server postgresql-contrib postgresql-docs

そしてinitdbしてstartしてみる。

$ sudo service postgresql initdb && sudo service postgresql start

今度はうまく起動したみたい。

だけど、このままだとec2-userがいなくてテーブルとか作れないらしいので、psqlでユーザーを作成する必要がありとのこと。とりあえずpostgresユーザーを作ってpsqlを実行します。

$ sudo -u postgres createuser -s ec2-user
$ sudo su postgres
$ psql

で、psqlでALTER USERを実行して\qで抜け出します。

ALTER USER "ec2-user" WITH SUPERUSER;
\q

最後に元にユーザーに戻るためにexitし、

$ exit

再度rails db:createを実行してみます。

$ rails db:create

まとめ

とりあえずエラー抜けれてよかったです:frowning2:

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2