家で Postgresql を使う練習をするぜ☆（＾ｑ＾）

# だらだらと書く。

Postgresql 10 をインストールして、ビルドパスを設定して pgAdmin4 で操作するのが楽かと思う。

PostgreSQLのインストール～使い方の説明は https://www.dbonline.jp/postgresql/ を読めだぜ。



## ビルドパス

多分、

```C:\Program Files\PostgreSQL\10\bin```

の中に実行したいものはあるだろ。これにパスを通そう。

[Windows] + [Break/Pause] キーをクリックして システム画面を出し、
[システムの詳細設定]　メニューをクリックしろだぜ。

「システムのプロパティ」ダイアログボックスが出てきたら、
[詳細設定]タブの [環境変数(N)...]ボタンをクリックしろだぜ。

「システム環境変数」の方の Path に、

```C:\Program Files\PostgreSQL\10\bin```

を追加しろだぜ。
テキストボックスの中を「;」で区切るやつだったり、
リストで入れるやつだったり
お前のPCの見た目がどうなってるかは知らないが　なんとかしろだぜ。


## ログイン

[Windows] - [R]キーから 「cmd」打鍵[Enter]キーで コマンド・プロンプトを起動。


```
### 打鍵
psql --version
### 結果
psql (PostgreSQL) 10.5
```

バージョン番号を確認して　ビルドパスが通っていることを確認。



インストール時に入れた PostgreSQL のパスワードを入れても
入れないな、と思ったら
postgres ユーザーのパスワードなのだった。

```
psql -U postgres
```

と打鍵して　パスワードを入れてなんとか入る。

やることもないので

```
\q
```

と打鍵して psql を終わる。

# pgAdmin4

postgreSQL 10 と一緒にインストールした pgAdmin4 が全く動かないので
別途　インストールすることにする。

別記事を読めだぜ。 http://cosmos0906.hatenablog.com/entry/2017/06/12/232320#1-pgAdmin4%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

そして pgAdmin4 を起動しようとすると、スプラッシュ画面が出たあと消えて、なにも出てこない。


「【PostgreSQL】WindowsにPostgreSQLをインストール」
http://www.yume-map.net/?p=6917


マイクロソフト アカウント にログインしていると、ユーザー名が　マルチバイト文字（日本語）になったりして
一部のアプリケーションでエラーの原因になるらしい。

https://www.microsoft.com/ja-jp?lc=1041

とりあえず　マイクロソフトからサインアウト。

## pgAdmin4 起動失敗

```
Fatal Error
An error occurred initialising the application
server:

Failed to launch the application server, server
thread exiting.
```

をググりたいので１行にする。

```
Fatal Error An error occurred initialising the application server: Failed to launch the application server, server thread exiting.
```

「WindowsでもpgAdmin4でサーバーモードしたい！」
https://qiita.com/rzl5/items/ddb419dd3897a1224661


なんの説明もないが、pgAdmin4 は python2.7 系なのだろうか？

https://www.python.jp/install/windows/install_py2.7.html

しぶしぶ python 2.7系　もインストールしてみる。
ところで　自分のPCの CPU が何かを知っている人とか　どこで知ったのだろうか。
Windows x86-64bit とか。 今時 x86-64 だと思うが、 x86-32 と x86-64 の違いとか　どこで知るのだろうか。

とりあえず Python を

```
C:\Python27
```

にインストール。 
pgAdmin4.py のファイルは　私の場合、

```
C:\Program Files\PostgreSQL\10\pgAdmin 4\web
```

の下にあるので、エラーのあとに出てくるダイアログボックスのテキストボックスに　このパスを入れる。

ブラウザのパスには

```
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
```

を入れてみる。　それでも　ダメ。

もうひとつ工夫して

```
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %URL%
```

と書くも、それでも　ダメ。

さらに Python のパスを ; で区切って

```
C:\Python27;C:\Program Files\PostgreSQL\10\pgAdmin 4\web
```

と工夫するも、それでも　ダメ。


「待望のpgAdmin4ベータ版が出たので、Windowsのポータブルアプリ化（管理者権限なく使える）」
https://kenpg.bitbucket.io/blog/201606/11.html

```
msvcp120.dllとmsvcr120.dllが必要
```

と書いてあるが　インストーラーからは何の説明もない。

msvcp120.dll は Microsoft のサイトからインストールする。

https://support.microsoft.com/ja-jp/help/3138367/update-for-visual-c-2013-and-visual-c-redistributable-package

ダウンロードしたファイルを実行すると msvcp120.dll のインストールが完了するはず。
というか、

```
C:\Windows\System32\msvcp120.dll
C:\Windows\System32\msvcr120.dll
```

Windows10 に最初から　すでに入っている。

Python を使うために設定するパスは　次の２つらしい。

```
set venv=%~dp0venv\
set pythonpath=%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs
```

venv は Python の環境とのこと。　これも何の説明もない。
じゃあ わたしは [Windows] - [Break/Pause] からたどって環境変数ダイアログボックスを出して

|システム環境変数名|値|
|---|---|
|pythonpath|C:\Python27\Lib\site-packages;C:\Python27\Lib;C:\Python27\Lib\lib-tk;C:\Python27\DLLs|

と設定してみる。

それでも　ダメ。

pgAdmin4 は 32bit だから、 python も 32bit 用にしないとダメと記事に書いてるな。
なぜ 64bit を用意しないのか謎だが仕方ない。 32bit の python2.7 系を入れてみる。

インストール ディレクトリ名は

```
C:\Python27(32bit)\
```

に変更し、設定を全部書き換える。

```
C:\Python27(32bit);C:\Python27(32bit)\Lib\site-packages;C:\Python27(32bit)\Lib;C:\Python27(32bit)\Lib\lib-tk;C:\Python27(32bit)\DLLs;C:\Program Files\PostgreSQL\10\pgAdmin 4\web
```

それでも　ダメ。

PC を再起動しても　ダメ。



## インストール失敗。

4時間ぐらい　いじってみたが　起動しないので　ここまで。





# PostgreSQL が 64bit で、 pgAdmin4 が 32 bit

なのが　いけないのかもしれない。
PostgreSQL から pgAdmin4 をアンインストールする。

python2.7系の 64bit 版もアンインストールする。


# localhost:5050

記事を参考に .bat ファイルを作ったり ブラウザでアクセスしたりするが、
「このサイトにアクセスできません」　と出るだけで　pgAdmin4 の画面のようなものは出てこない。

わたしの環境の場合、以下のような .bat ファイルを作る。

```
cd /d "C:\Program Files (x86)\pgAdmin 4\v3\venv"
powershell -WindowStyle Hidden -command ".\python ../web/pgAdmin4.py"
```

.bat ファイルをダブルクリックして 30秒待って ブラウザでアクセスしても
「このサイトにアクセスできません」　と出るだけ。

とりあえず pgAdmin4 と Postgresql と python を　アンインストールする。
作った環境変数も　消しておく。



# PostgreSQL を 32bit版にしたらどうか？

と突っ込まれたので　やるにはやるが、　なんで GUI に合わせて アプリケーションを 32bit版に
ダウングレードしなければならないのか……。

あと　2020年頃には 32bit アプリケーションは　OSから　サポート切れを起こされて　滅亡の流れに行くと思う。
なんで　滅亡する方に　合わせなければならないのか……。

システム環境変数 Path を

```
C:\Program Files (x86)\PostgreSQL\10\bin
```

に変えて、コマンド プロンプトを再起動。

pgAdmin4 を起動すると　同じエラー。

32bit版の Python2.7 を入れなおす。
ディレクトリは ```C:\Python27(x86)\```。


```
set venv=C:\Python27(x86)
set pythonpath=%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs
```


Configuration ダイアログボックスに値を設定する。

```
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe %URL%
```

それでもダメ。　また２時間無駄にした。

記事の情報の出どころは　以下のサイトらしい。

「pgAdmin4ベータ版をWindowsで動かす（ブラウザモード編）」
https://kenpg.bitbucket.io/blog/201606/12.html


```
cd /d "C:/Program Files (x86)/pgAdmin 4/v3/venv"
powershell -WindowStyle Hidden -command "./python C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py"
```

スラッシュの向きを変えたり、ディレクトリ変えたりするも　それでも　ダメ。

http://localhost:5050


記事を書いている人が PowerShell を起動したり、何がやりたいのかわからない。
自分で書き直す。

```
C:\Users\むずでょ>cd C:\Python27(x86)

C:\Python27(x86)>python "C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py"
Traceback (most recent call last):
  File "C:/Program Files (x86)/PostgreSQL/10/pgAdmin 4/web/pgAdmin4.py", line 34, in <module>
    import config
  File "C:\Program Files (x86)\PostgreSQL\10\pgAdmin 4\web\config.py", line 29, in <module>
    from pgadmin.utils import env, IS_PY2, IS_WIN, fs_short_path
  File "C:\Program Files (x86)\PostgreSQL\10\pgAdmin 4\web\pgadmin\__init__.py", line 18, in <module>
    from flask import Flask, abort, request, current_app, session, url_for
ImportError: No module named flask

C:\Python27(x86)>
```

エラーメッセージを見ても分からん。

```
pgAdmin4.py import config from flask import Flask, abort, request, current_app, session, url_for ImportError: No module named flask
```

適当に１行にして　ググる。

https://stackoverflow.com/questions/41260004/error-trying-to-run-pgadmin4

分からん。

https://www.pgadmin.org/download/pgadmin-4-python-wheel/

分からん。

python 2.7 も覚えたくないし、 Postgresql を使うのは止める。





# 3回目。

わけわからん記事は読まないようにし、公式のを読む。

https://www.pgadmin.org/docs/pgadmin4/3.x/getting_started.html


64bit 版の Postgresql をインストール。
この際、pgAdmin4 はチェックボックスを外す。

Windows版の Apache 2.4 系を入れる。
https://httpd.apache.org/download.cgi

「Windows版Apacheをインストールする」
http://d.hatena.ne.jp/Kazuhira/20170128/1485621099


アパッチのインストールから起動は記事にした。
https://qiita.com/muzudho1/items/b6065566f5ef97359788

そして説明が無いんだが、Windows版は Python のバージョンに制限があるのかもしれない。
Python は 2.7系 32bit を入れることにする。


pgAdmin4 は 32bit しかないんで　それを入れる。
設定ファイルを設定しないと　動かないのに、Launch pgAdmin4 とかミスリードするのはやめてほしい。


主語や場所が抜けるのは　日本人も外国人も同じようだが
わたしの場合、以下のディレクトリに

```
C:\Program Files (x86)\pgAdmin 4\v3\web
```

設定ファイルなどが入っている。ここに、


config_local.py

```
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
```

といったファイルを作成して置くことにする。 Linux のディレクトリになっているが
Windows で置くとどうなるのか。

次にインストールしたばかりの ```python (command line)``` を起動。

```
import os
os.getcwd()
### 出力
'C:\\Python27'
```

と打鍵。カレントディレクトリを調べる。以下で移動。

```
os.chdir("C:\\Program Files (x86)\\pgAdmin 4\\v3\\web")
os.getcwd()
### 出力
'C:\\Program Files (x86)\\pgAdmin 4\\v3\\web'
```

次にセットアップを実行。

```
>>> python setup.py
  File "<stdin>", line 1
    python setup.py
               ^
SyntaxError: invalid syntax
```

「Pytohn（3.5.1）の初歩的な構文エラーについて」
https://teratail.com/questions/28475

コマンド プロンプトでやってみる。

```
C:\Users\むずでょ>cd C:\\Program Files (x86)\\pgAdmin 4\\v3\\web

C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
```

ビルドパスを通せばいいのか。

|||
|---|---|
|venv|C:\Python27\|
|pythonpath|%venv%Lib\site-packages;%venv%Lib;%venv%Lib\lib-tk;%venv%DLLs|
|Path|「%pythonpath%」を末尾に追加。|

```
C:\Program Files (x86)\pgAdmin 4\v3\web>C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
アクセスが拒否されました。
```

コマンドプロンプトを管理者で実行することにする。

```
C:\Windows\system32>cd C:\\Program Files (x86)\\pgAdmin 4\\v3\\web

C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
'python' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
```

Path に直接 C:\Python27\ を追加する。

```
C:\Program Files (x86)\pgAdmin 4\v3\web>python setup.py
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    from pgadmin.model import db, Version, SCHEMA_VERSION as CURRENT_SCHEMA_VERSION
  File "C:\Program Files (x86)\pgAdmin 4\v3\web\pgadmin\__init__.py", line 18, in <module>
    from flask import Flask, abort, request, current_app, session, url_for
ImportError: No module named flask
```

なんのこっちゃ。

```
python setup.py pgadmin.model import db, Version, SCHEMA_VERSION as CURRENT_SCHEMA_VERSION     from flask import Flask, abort, request, current_app, session, url_for ImportError: No module named flask
```

1行にしてググる。

「pipの使い方とインストール」
https://www.python-izm.com/tips/pip/

```
C:\Program Files (x86)\pgAdmin 4\v3\web>python -m pip -V
pip 9.0.3 from C:\Python27\Lib\site-packages (python 2.7)
```

https://stackoverflow.com/questions/41260004/error-trying-to-run-pgadmin4

勝手にコマンドを作る。

```
pip install pgadmin4-3.2-py2.py3-none-any.whl
```

```
C:\Program Files (x86)\pgAdmin 4\v3\web>pip
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
```

```
C:\Python27\Scripts
```

にもパスを通す。

```
C:\Program Files (x86)\pgAdmin 4\v3\web>pip install pgadmin4-3.2-py2.py3-none-any.whl
Requirement 'pgadmin4-3.2-py2.py3-none-any.whl' looks like a filename, but the file does not exist
Processing c:\program files (x86)\pgadmin 4\v3\web\pgadmin4-3.2-py2.py3-none-any.whl
Exception:
Traceback (most recent call last):
  File "C:\Python27\Lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Python27\Lib\site-packages\pip\commands\install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 809, in unpack_url
    unpack_file_url(link, location, download_dir, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 715, in unpack_file_url
    unpack_file(from_path, location, content_type, link)
  File "C:\Python27\Lib\site-packages\pip\utils\__init__.py", line 599, in unpack_file
    flatten=not filename.endswith('.whl')
  File "C:\Python27\Lib\site-packages\pip\utils\__init__.py", line 482, in unzip_file
    zipfp = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: 'C:\\Program Files (x86)\\pgAdmin 4\\v3\\web\\pgadmin4-3.2-py2.py3-none-any.whl'
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
```

```
python -m pip install --upgrade pip
```

```
C:\Program Files (x86)\pgAdmin 4\v3\web>python -m pip install --upgrade pip
Collecting pip
Exception:
Traceback (most recent call last):
  File "C:\Python27\Lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "C:\Python27\Lib\site-packages\pip\commands\install.py", line 324, in run
    requirement_set.prepare_files(finder)
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "C:\Python27\Lib\site-packages\pip\req\req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 821, in unpack_url
    hashes=hashes
  File "C:\Python27\Lib\site-packages\pip\download.py", line 659, in unpack_http_url
    hashes)
  File "C:\Python27\Lib\site-packages\pip\download.py", line 880, in _download_http_url
    file_path = os.path.join(temp_dir, filename)
  File "C:\Python27\Lib\ntpath.py", line 85, in join
    result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0x82 in position 7: ordinal not in range(128)
You are using pip version 9.0.3, however version 18.0 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
```