SQLAlchemy を使用して PostgreSQL に接続する
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