SQLAlchemy を使用して PostgreSQL に接続する

2024-04-09

PostgreSQL のポート番号に関する混乱:5433 または 5432?

歴史

  • PostgreSQL 9.0 以前:デフォルトポート番号は 5432 でした。

現在の状況

  • 多くの場合、PostgreSQL は 5433 で動作します。
  • 古いバージョンの PostgreSQL または特別な設定を使用している場合は、5432 で動作している可能性があります。

接続時の注意点

  • PostgreSQL に接続するには、以下のいずれかが必要です。
    • サーバーが 5433 で動作していることを確認し、そのポート番号を指定して接続する。
    • サーバーがどのポート番号で動作しているかわからない場合は、psql コマンドの -p オプションを使用してポート番号を指定して接続を試す。

psql コマンドの使用例

# デフォルトポート (5433) で接続
psql postgres

# ポート 5432 で接続
psql -p 5432 postgres

# ポート番号を指定して接続を試す
psql -p 5432 -h localhost -U postgres -W

PostgreSQL のデフォルトポート番号は 5433 ですが、古いバージョンや特別な設定を使用している場合は 5432 である可能性があります。 接続する前に、サーバーがどのポート番号で動作しているかを確認する必要があります。




Python

import psycopg2

# デフォルトポート (5433) で接続
conn = psycopg2.connect(database="postgres", user="postgres", password="password")

# ポート 5432 で接続
conn = psycopg2.connect(database="postgres", user="postgres", password="password", port=5432)

# カーソルを取得
cur = conn.cursor()

# クエリを実行
cur.execute("SELECT * FROM users")

# 結果を取得
rows = cur.fetchall()

# クリーンアップ
cur.close()
conn.close()

Java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class PostgreSQLExample {

    public static void main(String[] args) throws Exception {
        // デフォルトポート (5433) で接続
        Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5433/postgres", "postgres", "password");

        // ポート 5432 で接続
        // Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres", "password");

        // ステートメントを取得
        Statement stmt = conn.createStatement();

        // クエリを実行
        ResultSet rs = stmt.executeQuery("SELECT * FROM users");

        // 結果を処理
        while (rs.next()) {
            System.out.println(rs.getString("name"));
        }

        // クリーンアップ
        rs.close();
        stmt.close();
        conn.close();
    }
}

Node.js

const { Client } = require('pg');

// デフォルトポート (5433) で接続
const client = new Client({
    database: 'postgres',
    user: 'postgres',
    password: 'password',
});

// ポート 5432 で接続
// const client = new Client({
//     database: 'postgres',
//     user: 'postgres',
//     password: 'password',
//     port: 5432,
// });

client.connect();

client.query('SELECT * FROM users', (err, res) => {
    if (err) {
        console.error(err);
        return;
    }

    // 結果を処理
    console.log(res.rows);

    client.end();
});



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

pgAdmin

SQLAlchemy は、Python でデータベースとやり取りするためのライブラリです。 SQLAlchemy を使用して、PostgreSQL だけでなく、MySQL、Oracle、SQLite などの他のデータベースにも接続できます。

DBeaver は、PostgreSQL だけでなく、MySQL、Oracle、SQLite などの他のデータベースにも接続できるユニバーサルデータベースクライアントです。 DBeaver は、GUI とコマンドラインインターフェース (CLI) の両方を提供します。

その他のツール

PostgreSQL に接続するには、他にも多くのツールがあります。 以下は、その例です。

  • psql: コマンドラインツール
  • phpPgAdmin: Web ベースの管理ツール
  • Navicat: GUI ツール

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

補足

  • 上記の方法は、PostgreSQL サーバーがローカルマシンにある場合を想定しています。 リモートサーバーにある場合は、接続方法が異なる場合があります。
  • より詳細な情報は、PostgreSQL の公式ドキュメントを参照してください。

postgresql port psql


トラブルシューティングのヒント: PostgreSQL フィールドのデータ型で問題を解決

information_schema スキーマには、データベース内のテーブルやフィールドに関する情報が含まれています。 以下のクエリを使用して、フィールドのデータ型を取得できます。このクエリは、your_table_name テーブルの your_column_name フィールドのデータ型 (data_type カラム) を返します。...


【エンジニア必見】PostgreSQLで変数周期間隔を使いこなして開発を効率化

しかし、より柔軟な期間の表現が必要な場合があります。そこで、変数周期間隔が登場します。変数周期間隔は、期間データ型で使用できる特殊なリテラルであり、期間の長さを決定するために式を使用します。変数周期間隔は以下の構文で表されます。ここで、<number> は、期間の長さを表す数値です。...


pg_tablesテーブルで詳細情報を取得

psqlコマンドは、PostgreSQLデータベースと対話するためのインタラクティブなツールです。以下のコマンドを実行することで、現在のデータベース内の全てのテーブルを一覧表示できます。オプションで、スキーマを指定してそのスキーマ内の全てのテーブルのみをリストすることもできます。...


PostgreSQL: データベース設計の自由度を向上させる!ALTER TABLEコマンドによる列追加

例次の例では、users テーブルに age という名前の新しい列を追加します。この列は integer 型です。ALTER TABLE コマンドには、列を追加する際にいくつかのオプションを使用できます。DEFAULT オプション: 新しい列にデフォルト値を設定できます。...


【超解説】PostgreSQLエラー「Failed to find conversion function from unknown to text」の解決方法を図解付きでわかりやすく解説!

PostgreSQL でクエリを実行中に、「Failed to find conversion function from unknown to text」エラーが発生することがあります。このエラーは、クエリ内のデータ型と、データ型を文字列に変換しようとしている操作が互換性がない場合に発生します。...


SQL SQL SQL SQL Amazon で見る



【PostgreSQL接続トラブル】ポート5432拒否を徹底解決!原因と解決策を完全網羅

PostgreSQLサーバーに接続できないエラーメッセージ:「psql: could not connect to server: Connection refused Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?」