尝试在Windows 10上安装PostgreSQL 12

达成目标
实现目标
目标是

尝试在 Windows 10 上安装 Posgtgres12。

文件下载

从PostgreSQL数据库下载页面下载12.3xWindows x86-64版本。
在开始安装之前,先阅读本地化和区域设置方面的文档,确认是否使用–locale=C选项。
*需要注意的是,这是10年前的文章,现在默认情况下在Ubuntu上安装时使用–locale=ja_JP.UTF-8。
*现在的情况怎么样呢?

安装

※基本的安装步骤如下:下载并安装PostgreSQL
※还应该能够找到其他带有截图的安装方法
※安装位置可以根据个人喜好选择
双击postgresql-12.3-1-windows-x64.exe
安装目录:D:\DB\PostgreSQL\12
选择组件:保持原样
数据目录:D:\DB\PostgreSQL\12\data
密码: 随意
端口:5432
区域设置:C
确认预安装摘要
开始安装
安装完成后,将D:\DB\PostgreSQL\12\bin添加到PATH路径中


PS > psql -lU postgres
ユーザ postgres のパスワード:
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
(3 行)

看起来是通过使用”initdb –locale=C –encoding=UTF-8″命令创建的,可以通过检查”psql -l”的结果来确认。

修改设定文件


D:\DB\PostgreSQL\12\data\postgresql.conf はデフォルトのまま
listen_addresses = '*'

D:\DB\PostgreSQL\12\data\pg_hba.conf を以下に修正
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    all             all             192.168.5.0/24          md5
# IPv6 local connections:
host    all             all             ::1/128                md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             127.0.0.1/32           md5
host    replication     all             ::1/128                md5

请重新启动后进行修正。

创建示例数据库

从PostgreSQL示例数据库中获取
在下载的PostgreSQL DVD租赁示例数据库后解压dvdrental.zip文件。


PS > createdb --locale=C --encoding=UTF-8 --template=template0 -U postgres dvdrental
パスワード:
PS > psql -lU postgres
ユーザ postgres のパスワード:
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+----------+-------------------+-----------------------
 dvdrental | postgres | UTF8             | C        | C                 |
 postgres  | postgres | UTF8             | C        | C                 |
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
(4 行)

PS > pg_restore -U postgres -d dvdrental dvdrental.tar
パスワード:

PS > psql -U postgres
ユーザ postgres のパスワード:
psql (12.3)
"help"でヘルプを表示します。

postgres=# \c dvdrental
データベース"dvdrental"にユーザ"postgres"として接続しました。
dvdrental=# \d
                       リレーション一覧
 スキーマ |            名前            |     型     |  所有者
----------+----------------------------+------------+----------
 public   | actor                      | テーブル   | postgres
 public   | actor_actor_id_seq         | シーケンス | postgres
 public   | actor_info                 | ビュー     | postgres
 public   | address                    | テーブル   | postgres
 public   | address_address_id_seq     | シーケンス | postgres
 public   | category                   | テーブル   | postgres
~
dvdrental=# \q
PS >

设置访问环境


PS > psql -U postgres
ユーザ postgres のパスワード:
psql (12.3)
"help"でヘルプを表示します。

postgres=# create role dvdrental with login password 'passwd';
CREATE ROLE
postgres=# \c dvdrental
データベース"dvdrental"にユーザ"postgres"として接続しました。

postgres=# grant all on all tables in schema public to dvdrental;
GRANT
postgres=# grant all on all sequences in schema public to dvdrental;
GRANT
postgres=# grant all on all functions in schema public to dvdrental;
GRANT

安装 psycopg2

or

进行 psycopg2 的安装


PS > pip3 install psycopg2

尝试通过Python3进行访问

# Windows Add env PYTHONIOENCODING = UTF-8 & restart vscode
# coding:utf-8

import psycopg2

server   = '192.168.5.xx' 
port= '5432'
database = 'dvdrental' 
username = 'dvdrental' 
password = 'demo'

# 接続文字列 - 空白文字がセパレータなのか??
constr = 'host=' + server + ' port=' + port + ' dbname=' + database + ' user=' + username + ' password=' + password
conn = psycopg2.connect(constr)

cur = conn.cursor()

# 件数を確認する
cur.execute("SELECT COUNT(*) FROM actor")
row = cur.fetchone()

if row:
    print(row)

cur.close()
conn.close()

以下是我参考的网站

下载PostgreSQL数据库安装包
语言环境设置(国际化与本地化)
下载并安装PostgreSQL
PostgreSQL示例数据库
在Ubuntu 20.04上安装PostgreSQL后尝试使用C#+ Npgsql进行访问
从Win10 + VsCode + Python3 + psycopg2访问Ubuntu 20.04 + Posgtgres12

广告
将在 10 秒后关闭
bannerAds