方法 1. プロンプト
-U
, -d
は省略して書けます。
psql
# パスワード
psql ユーザ名 データベース名
# パスワード
psql -U ユーザ名 -d データベース名
# パスワード
psql -h ホスト -p ポート ユーザ名 データベース名
# パスワード
psql -h ホスト -p ポート -U ユーザ名 -d データベース名
# パスワード
# 省略した場合
# ユーザ名: ログインしている OS のユーザ名
# データベース名: ログインしている OS のユーザ名
# ホスト: localhost, 127.0.0.1
# ポート: 5432
◯ ログアウト・切断方法
バックスラッシュ \
と q
\q
◯ パスワードを打つのが面倒な場合
環境変数 PGPASSWORD
を使った、つぎのような書き方があるそうです。
PGPASSWORD=パスワード psql -U ユーザ名 データベース名
◯ パスワードを忘れた場合
対処法
Administrator 権限を持ったユーザ(正確にはロールというらしいですが)のパスワードを忘れた場合、pg_hba.conf
を書き換えてパスワードを無効にできます。Windows 以外の場合は、以下のコマンドでファイルの場所を確認できます。
find / -name 'pg_hba.conf' 2>/dev/null
適宜 md5
, peer
から trust
にします。詳細は、リンク先をご確認ください。
◯ 広告
マイナビ転職が運営するメディアの広告です。
賃金が低くても転職してほしいという思いがあるのかどうかわからないのですが、そうした意図が透けて見えるようで嫌だなと思いました。Qiita の皆様にはこういうのにハマって欲しくないという思いで、ここに記載させていただきます。
記事は「どういうときに働きがいを感じるか」は「働きに見合う報酬が得られている」よりも「成長を感じる」ときであると主張されています。
わたしは企業が労働者に明文化して提供できる価値は、「待遇」と「キャリア」の2つに大別できると個人的に思っています。
企業が労働者に提供できる価値
1. 待遇
1.1. 年収
1.2. 福利厚生
2. キャリア
2.1. 成長
2.1.1. 働きがい、やりがい
「キャリア」を提供できない企業は「待遇」が良くてもブラック企業です。
その上で記事を読んでいて怖いなと感じたのは次の 2 点です。
まず第一に「働きがい」は転職においてあくまでも「キャリア」に従属する物であり、「待遇(年収)」と対等に比較することができないにも関わらず、あたかも「働きがい」が「待遇(年収)」よりも優先事項が高いかのように記述されていることです。
また第二に「キャリア」を明文化していない「成長」という曖昧な言葉で濁していることです。どんなスキルだってやれば「成長」します。しかしその「成長」が「キャリア」に寄与するかどうかは別問題です。
そもそも「待遇(年収)」を提供できない企業が「キャリア(働きがい)」を提供できるとは私は思えません。なぜならいわゆる「キャリア」を提供できる上流工程の企業あるいは社格の高い企業は収益も高く、必然的に「待遇(年収)」も良くなると思うからです。
「待遇」と「キャリア(働きがい)」は相関していているのではないでしょうか。したがって「キャリア(働きがい)」がいいから「待遇」は我慢しようと思っているときは、騙されている、疑似餌に釣られている可能性があるのではないかと思います。
「やりがい」、「アットホームな職場」なんていまどき流行らないだろと思っていたのですが、こうやって隙あらば人の思考を染めようとしてくるのは本当に怖いこどだなと感じました。
方法 2. 環境変数
export PGUSER=ユーザ名
export PGPASSWORD=パスワード
export PGHOSTNAME=ホスト
export PGPORT=ポート
export PGDATABASE=データベース名
方法 3. パスワードファイル
◯ ファイルの書式
コロン :
で区切ります。
ホスト:ポート:データベース名:ユーザ名:パスワード
◯ ファイルの場所
1. Windows の場合
%APPDATA%\postgresql\pgpass.conf
2. それ以外 OS の場合
~/.pgfile
3. あるいは環境変数 PGPASSFILE でファイルパスを指定できます。
まとめ
PostgreSQL サーバへのログイン、接続する際にホスト名等を指定する方法は以下の4通りがあります。
項目 | ホスト名 | ポート番号 | データベース名 | ユーザ名 | パスワード |
---|---|---|---|---|---|
デフォルト値 | 127.0.0.1 | 5432 | OS のユーザ名 | OS のユーザ名 | - |
プロンプト | -h, --host | -p, --port | -d, --dbname | -U, --username | - |
環境変数 | PGHOST | PGPORT | PGDATABASE | PGUSER | PGPASSWORD |
パスワードファイル | 1 | 2 | 3 | 4 | 5 |
値が指定されなかった場合、デフォルトの値が適用されます。プロンプト、パスワードファイル、環境変数でそれぞれ別の値を指定した場合、どの値が優先されるのかは調べてないので分かりません。
psql ってなんだ?
以下の2つがポイントかなと思いました。
- psql クライアントと PostgreSQL サーバを区別する
- psql クライアントと
psql
コマンドを区別する
psql クライアントは PostgreSQL サーバを操作するための対話端末 interactive terminal です。psql クライアンはそれ1つでアプリとして動作します。
psql クライアントは、自分のパソコンのなかで動いている PostgreSQL サーバだけではなく、ネットワーク上にいるほかのパソコンで動いている PostgreSQL サーバも操作できます。これは psql
コマンドでホスト名やポート番号を指定できることからもわかります。
そして psql クライアントは psql
コマンドで起動することができます。psql はクライアントです。データベースが動いているサーバとは違うものです。ややこしいのですがサーバとクライアントを区別すると良いような気がします。
以下のリンクの中で "PostgreSQL Client Applications" の一覧の中に psql
コマンドがあるのがわかります。つまり psql はクライアントということです。
自分は サーバとクライアントが別物であると言う意識が希薄になっていました。これは psql
コマンドが、なにも指定しないとフォールバックされて自動的にローカル 127.0.0.1 のサーバに接続されるからです。
コメント