goodbyegangsterのブログ

備忘録的な

Windowsにpsqlをインストールして、Redshiftへ接続する方法

Windows10で利用する時の方法です。尚、SQL Workbench/Jをインストールする方法はこちら。

SQL workbench/JからRedshiftに接続して、テーブルが作成できない件 - goodbyegangsterのブログ

psqlをダウンロードします。Windowsでは、psql単体のみでインストールする方法はないでようで、postgerSQLのサイトに行って、postgerSQL本体のバイナリファイルをダウンロードしてきます。

https://www.postgresql.org/download/windows/

AWS公式では、バージョン"8.X"のpsql以外サポートしないと記載あるのですが、既にバージョン8時代のものはダウンロードできませんでした。。。 Not Supported になっていない、最も古いバージョンである 9.3.22 をダウンロード、zipファイルになっているので解凍して、適当なパスに保管。僕は C:\Program Files\pgsql に置いてます。

後はシステム環境変数Path に、 C:\Program Files\pgsql\bin を追加してあげればOK。OS再起動後はpsqlが利用可能となります。

C:\>psql --version
psql (PostgreSQL) 9.3.22

Redshiftへconnectする方法はこちら。

psql ツールを使用してクラスターに接続する - Amazon Redshift

Windowsから接続しようとすると、Clientのエンコード設定でSJISやめろ、と怒られます。

C:\>psql -h XXXXXXX.XXXXXXXXXX.ap-northeast-1.redshift.amazonaws.com -U root -d test -p 5439
ユーザ root のパスワード:
psql: FATAL:  invalid value for parameter "client_encoding": "SJIS"

そのため接続前に、 PGCLIENTENCODING環境変数UTF8 で定義してあげます。同時に、Redshift側から返された文字もUTF8になっているため、Windowsコマンドプロンプトでは文字化けして表示されてしまいます。事前にchcpコマンドで、コマンドプロンプト文字コードをUTF8対応に変更しておきます。

C:\>chcp 65001
C:\>set PGCLIENTENCODING=UTF8
C:\>psql -h XXXXXXX.XXXXXXXXXX.ap-northeast-1.redshift.amazonaws.com -U root -d test -p 5439
ユーザ root のパスワード:
psql (9.3.22, サーバー 8.0.2)
SSL 接続 (暗号化方式: ECDHE-RSA-AES256-GCM-SHA384, ビット長: 256)
"help" でヘルプを表示します.

test=#

参考となるAWS Forumはこちら。

https://forums.aws.amazon.com/thread.jspa?messageID=600088