PostgreSQLがインストールされていることを確認する

2024-04-12

macOSで「psql: command not found」エラーを解決する方法

macOSでPostgreSQLを利用する場合、「psql: command not found」というエラーが発生することがあります。これは、psqlコマンドが実行可能パスにないことを意味します。このエラーを解決するには、以下の手順に従ってください。

解決手順

  1. PostgreSQLがインストールされていることを確認する

ターミナルを開き、以下のコマンドを実行します。

pg_ctl -V
  1. PATH環境変数にpsqlのパスを追加する

以下のコマンドを実行して、PATH環境変数にpsqlのパスを追加します。

export PATH=/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH

注: 上記のパスは、PostgreSQLをデフォルトの場所にインストールした場合のものです。PostgreSQLを別の場所にインストールした場合は、パスを適宜変更する必要があります。

  1. ターミナルを再起動する

PATH環境変数の変更を反映するために、ターミナルを再起動する必要があります。

補足

  • 上記の手順で解決しない場合は、以下の点を確認してください。
    • PostgreSQLが起動していること
    • ユーザーがPostgreSQLデータベースにアクセスする権限を持っていること
  • psql以外にも、PostgreSQLデータベースを操作するためのツールはいくつかあります。例えば、pgAdminやSequel Proなどがあります。
  • macOS以外にも、WindowsやLinuxでもPostgreSQLを利用することができます。



PostgreSQL を用いたサンプルコード

データベースへの接続

psql -h localhost -d postgres -U postgres

このコマンドは、以下の情報を指定して、PostgreSQLデータベースに接続します。

  • -h localhost: ホスト名 (この場合はローカルマシン)
  • -d postgres: データベース名 (この場合は "postgres")

テーブルの作成

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(100) UNIQUE NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

このコードは、usersという名前のテーブルを作成します。このテーブルには、以下のカラムが含まれます。

  • id: シリアル型 (自動的にインクリメントされる主キー)
  • name: 文字列型 (最大50文字)
  • email: 文字列型 (最大100文字)、ユニーク
  • created_at: タイムスタンプ型 (デフォルトで現在時刻が設定される)

データの挿入

INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]');
INSERT INTO users (name, email) VALUES ('Jane Doe', '[email protected]');

このコードは、usersテーブルに2つのレコードを挿入します。

SELECT * FROM users;
UPDATE users
SET name = 'John Smith'
WHERE id = 1;

このコードは、usersテーブルの id が 1 のレコードの name カラムを John Smith に更新します。

DELETE FROM users
WHERE id = 2;
\q

注意事項

  • 上記のコードはあくまで基本的な例であり、実際のアプリケーションではより複雑な操作が必要になる場合があります。



macOSでPostgreSQLに接続するその他の方法

GUIツールを使用する

PostgreSQLには、pgAdminやSequel ProなどのGUIツールが用意されています。これらのツールを使用すると、コマンドラインを使用せずにデータベースを操作することができます。

Homebrewは、macOS用のパッケージマネージャーです。Homebrewを使用すると、PostgreSQLを含むさまざまなソフトウェアを簡単にインストールできます。

brew install postgresql

Dockerを使用する

Dockerは、コンテナ化技術です。Dockerを使用すると、PostgreSQLなどのソフトウェアを独立したコンテナで実行することができます。

docker run -e POSTGRES_PASSWORD=mypassword -p 5432:5432 postgres

クラウドサービスを使用する

Amazon Relational Database Service (RDS)やGoogle Cloud SQLなどのクラウドサービスを使用すると、データベース管理を自分で行うことなく、PostgreSQLに接続することができます。

各方法の比較

方法利点欠点
bashコマンドシンプルコマンドに慣れている必要がある
GUIツール使いやすいインストールが必要
Homebrewインストールが簡単ある程度の技術知識が必要
Dockerポータブルで独立している複雑
クラウドサービス管理が簡単ベンダーロックインの可能性

macOSでPostgreSQLに接続するには、さまざまな方法があります。自分に合った方法を選択してください。


macos bash postgresql


PostgreSQLのORDER BY:INリストを使って検索結果を思い通りに並べ替える

PostgreSQLでは、IN リストを使用して、ORDER BY 句で結果を特定の値の順序に並べ替えることができます。これは、特定の値を優先的に表示したり、特定の順序で結果を並べ替えたりする場合に役立ちます。構文例以下の例では、products テーブルの price 列を、IN リストで指定された値の順序に並べ替えています。...


PostgreSQL スキーマ public 内のテーブル users の名前を customers に変更する方法

この方法は、単純にテーブル名を変更するだけです。テーブルスキーマやデータは変更されません。例:この例では、public スキーマ内の users テーブルの名前を customers に変更します。ALTER TABLE コマンドには、テーブル名を変更する際にいくつかのオプションを指定することができます。...


mysqld_secure_installationスクリプトを使用してmacOSでMySQLのrootパスワードをリセットする

このチュートリアルでは、macOSにMySQLをインストールした後、ALTER USERステートメントを使用してrootパスワードをリセットする方法を説明します。この方法は、MySQL 5.7以降で使用できます。前提条件macOSMySQLがインストールされている...


SQL SQL SQL SQL Amazon で見る



PostgreSQLでデータベースを切り替える方法

\connect コマンドは、PostgreSQLクライアントの中で最も簡単な方法でデータベースを切り替えることができます。ここで、database_name は接続したいデータベースの名前です。例:このコマンドを実行すると、my_database データベースに接続されます。


PostgreSQL コマンドラインユーティリティ psql の使い方

この解説では、psqlから正常に終了するための方法を、分かりやすく日本語で説明します。\q コマンドを使用するpsqlから終了する最も簡単な方法は、\qコマンドを使用することです。このコマンドは、psqlを即座に終了し、オペレーティングシステムのプロンプトに戻ります。


PostgreSQLに接続できない?「psql: FATAL: database "" does not exist」エラーの原因と解決策

PostgreSQLに接続しようとすると、「psql: FATAL: database "<user>" does not exist」というエラーが発生することがあります。これは、接続しようとしているデータベースが存在しないことを示しています。