なんかどうも違うバージョンを指しているのか何なのか上手くいかないので…
(正確なメッセージをとっておくのを忘れてしまいましたが、psql -V
とやるとpostgresql 11 をインストールしているはずなのに10.Xのバージョン番号が出てしまう状態でした。)
sidemt@PC:~$ psql postgres
psql: 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"?
WSL上のpostgresqlをアンインストールして再インストール
【参考】
完全にubuntuでpostgresqlをパージして再インストールするには? - コードログ
上記の元記事: How to thoroughly purge and reinstall postgresql on ubuntu? - Stack Overflow
PostgreSQLのアンインストール
システムからすべてのPostgreSQLを削除
apt-get --purge remove postgresql\*
上記の記事では下記も実行するように書かれていますが、これまで試行錯誤する中で消してしまっていたのか、それらしきユーザーやディレクトリが存在しませんでした。
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres
再インストール
apt-get install postgresql
できた
sidemt@PC:~$ sudo service postgresql start [ OK ]
sidemt@PC:~$ psql postgres
psql: FATAL: role "sidemt" does not exist
sidemt@PC:~$ psql -V
psql (PostgreSQL) 11.5 (Ubuntu 11.5-1.pgdg18.04+1)
バージョンは意図したものになった。
Ubuntuのログインユーザーと同じ名前のデータベースユーザーを作成
sidemt(Ubuntuのログインユーザーの名前にしてる)というユーザーがいないと言われたので作る。
(Ruby on Rails5速習実践ガイドのPostgresのセットアップの箇所で言われてるのがこれかなと…)
sidemt@PC:~$ sudo su postgres -c 'createuser -s sidemt'
[sudo] password for sidemt:
sidemt@PC:~$ psql postgres
psql (11.5 (Ubuntu 11.5-1.pgdg18.04+1))
Type "help" for help.
postgres=#
できた。
postgresコンソールは使えるようになったけどRailsのコマンドが上手くいかない
けど bin/rails db:create
しようとすると上手くいかない
sidemt@PC:~/myapp-rails$ sudo service postgresql start
* Starting PostgreSQL 11 database server [ OK ]
sidemt@PC:~/myapp-rails$ bin/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"?
Couldn't create 'myapp-rails_development' database. Please check your configuration.
rails aborted!
PG::ConnectionBad: 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"?
/mnt/c/Users/Owner/workspace/myapp-rails/bin/rails:9:in `<top (required)>'
/mnt/c/Users/Owner/workspace/myapp-rails/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)
Rails がPort 5432を使おうとしているが、Postgresは5433で起動している様子
下記ヘルプのportの項を見るとデフォルトでは5433が使われるみたい。
sidemt@PC:~/myapp-rails$ psql -?
psql is the PostgreSQL interactive terminal.
Usage:
psql [OPTION]... [DBNAME [USERNAME]]
General options:
-c, --command=COMMAND run only single command (SQL or internal) and exit
-d, --dbname=DBNAME database name to connect to (default: "sidemt")
-f, --file=FILENAME execute commands from file, then exit
-l, --list list available databases, then exit
-v, --set=, --variable=NAME=VALUE
set psql variable NAME to VALUE
(e.g., -v ON_ERROR_STOP=1)
-V, --version output version information, then exit
-X, --no-psqlrc do not read startup file (~/.psqlrc)
-1 ("one"), --single-transaction
execute as a single transaction (if non-interactive)
-?, --help[=options] show this help, then exit
--help=commands list backslash commands, then exit
--help=variables list special variables, then exit
Input and output options:
-a, --echo-all echo all input from script
-b, --echo-errors echo failed commands
-e, --echo-queries echo commands sent to server
-E, --echo-hidden display queries that internal commands generate
-L, --log-file=FILENAME send session log to file
-n, --no-readline disable enhanced command line editing (readline)
-o, --output=FILENAME send query results to file (or |pipe)
-q, --quiet run quietly (no messages, only query output)
-s, --single-step single-step mode (confirm each query)
-S, --single-line single-line mode (end of line terminates SQL command)
Output format options:
-A, --no-align unaligned table output mode
-F, --field-separator=STRING
field separator for unaligned output (default: "|")
-H, --html HTML table output mode
-P, --pset=VAR[=ARG] set printing option VAR to ARG (see \pset command)
-R, --record-separator=STRING
record separator for unaligned output (default: newline)
-t, --tuples-only print rows only
-T, --table-attr=TEXT set HTML table tag attributes (e.g., width, border)
-x, --expanded turn on expanded table output
-z, --field-separator-zero
set field separator for unaligned output to zero byte
-0, --record-separator-zero
set record separator for unaligned output to zero byte
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
-p, --port=PORT database server port (default: "5433") # ここ
-U, --username=USERNAME database user name (default: "sidemt")
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
For more information, type "\?" (for internal commands) or "\help" (for SQL
commands) from within psql, or consult the psql section in the PostgreSQL
documentation.
Report bugs to <pgsql-bugs@postgresql.org>.
database.yml にポート番号の指定を追加
database.yml にポート番号の指定を追加して、5433を利用するようにしてあげると実行できた。
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see Rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
port: 5433 # ここを追加
最初にPostgreSQLをインストールするときに参考にさせていただいた、Ruby on Rails5速習実践ガイド↓。
リンク
0 件のコメント:
コメントを投稿