開発ツール/CygwinでPostgreSQLを実行する手順
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* CygwinでPostgreSQLを実行する手順 [#j0a7079a]
「Windows環境を汚したくないなぁ。そうだ!CygwinのPostgreS...
と思って作業をした備忘録になります。~
サービス(デーモン)として動かすのではなく、~
Cygwin Terminalからコマンドで実行、操作、停止までの手順と...
postgresユーザーなども作成せず、まずはCygwin上でPostgreSQ...
PostgreSQLをサービスに登録したくない!という人には役に立...
#htmlinsert(win-top.html)
#contents
* 使用環境 [#j2fd0cde]
- Windows 10 ver.1909 64bit
- Cygwin バージョン
$ uname -r
3.1.2(0.340/5/3)
* PostgreSQLのインストール [#ra7def0b]
PostgreSQLはCygwinが提供しているパッケージをインストール...
インストール手順は、setup-x86_64.exe を起動して postgresq...
+ View を Full にします。
+ Search に postgresql を入力します。
+ postgresql をクリックします。
+ ▼をクリックし、12.1-1 を選択しました。
+ 「次へ」ボタンをクリックしインストールします。
#ref(01.png)
#br
+ 以下の画面が表示されるので、「次へ」ボタンをクリックす...
#ref(02.png)
#br
+ インストール中はプログレスバーが表示されます。
+ 完了画面のキャプチャになります。~
完了ボタンを押せば postgresql パッケージのインストールは...
#ref(03.png)
* Cygwin Terminal を起動し PostgreSQLを起動するまで [#lad...
以下、Cygwin Terminal を起動し、PostgreSQLを起動するまで...
+ Cygwin Terminal を''管理者権限''で起動します。
+ cygserver-config コマンドを実行し、サービスに登録します...
cygserver-config
+以下のようなメッセージが表示されるので、途中、''yes'' を...
$ cygserver-config
Generating /etc/cygserver.conf file
Warning: The following function requires administrator p...
Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no)...
The service has been installed under LocalSystem account.
To start it, call `net start cygserver' or `cygrunsrv -S...
Further configuration options are available by editing t...
file /etc/cygserver.conf. Please read the inline inform...
file carefully. The best option for the start is to just...
Basic Cygserver configuration finished. Have fun!
&color(red){cygserverをサービスに登録しないとPostgreSQLが...
$ /usr/sbin/initdb.exe -D $HOME/pgdata
<snip>
ブートストラップスクリプトを実行しています ... 2019-12-2...
2019-12-23 20:23:08.986 JST [994] 詳細: 失敗したシステ...
子プロセスが終了コード1で終了しました
<snip>
+PostgreSQLを以下の手順で起動します。~
Cygwin Terminalを管理者権限で起動する必要はありません。
+ cygserverを起動します。
$ /usr/sbin/cygserver &
以下のメッセージが表示されれば成功です。
cygserver: Initialization complete. Waiting for requests.
+ PostgreSQLを起動するためにデータベース初期化コマンド in...
上記メッセージが表示されプロンプト($)が表示されていないよ...
なので、Enterキーを押せばプロンプト($)のみが表示されます。
$ /usr/sbin/initdb -D $HOME/pgdata
本記事では、ホームディレクトリ直下にデーベースを作成しま...
以下、実際にinitdbを実行して出力されたものです。
$ /usr/sbin/initdb -D $HOME/pgdata
データベースシステム内のファイルの所有者はユーザ"sakura"...
このユーザをサーバプロセスの所有者とする必要があります。
データベースクラスタはロケール"ja_JP.UTF-8"で初期化され...
デフォルトのデータベース符号化方式はそれに対応してUTF8に...
initdb: could not find suitable text search configuratio...
デフォルトのテキスト検索構成は simple に設定されます。
データベージのチェックサムは無効です。
ディレクトリ/home/sakura/pgdataを作成しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 20
デフォルトの shared_buffers を選択しています ... 128MB
selecting default time zone ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok
initdb: 警告: ローカル接続に対して"trust"認証を有効にし...
pg_hba.confを編集する、もしくは、次回initdbを実行する時...
あるいは --auth-local および --auth-host オプションを使...
ことがきます。
成功しました。以下のようにしてデータベースサーバを起動す...
/usr/sbin/pg_ctl -D /home/sakura/pgdata -l ログファ...
+ PostgreSQLを起動します。
/usr/sbin/pg_ctl -D $HOME/pgdata -l /tmp/postgresql.log ...
ログは/tmpに出力するように設定し起動しています。
$ /usr/sbin/pg_ctl -D $HOME/pgdata -l /tmp/postgresql.lo...
サーバの起動完了を待っています....完了
サーバ起動完了
上記のように出力されれば PostgreSQL の起動は成功です。
* データベース作成とユーザー作成 [#i6c98b84]
PostgreSQLが起動したのでデータベースとユーザーを作成しま...
+以下のコマンドでは、データベース名 sakuradb を作成します。
/usr/bin/createdb sakuradb
何も表示されず、プロンプト($)が表示されれば成功です。
+ データベースが作成されたかをコマンドで確認しています。~
確認作業なので、本コマンド実行は必須ではありません。
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | C...
-----------+--------+------------------+-------------+--...
postgres | sakura | UTF8 | ja_JP.UTF-8 | j...
sakuradb | sakura | UTF8 | ja_JP.UTF-8 | j...
template0 | sakura | UTF8 | ja_JP.UTF-8 | j...
| | | | ...
template1 | sakura | UTF8 | ja_JP.UTF-8 | j...
| | | | ...
(4 行)
sakuradbが存在しているのが確認できます。
+ データベースに接続し、ユーザ名 user1, パスワード pass1 ...
+ 以下のコマンドで作成した sakuradb に接続します。
psql sakuradb
成功すると以下のメッセージが出力されます。
$ psql sakuradb
psql (12.1)
"help"でヘルプを表示します。
sakuradb=#
+ 以下の構文でユーザーを追加することができます。
CREATE USER ユーザ名 WITH PASSWORD パスワード ;
実際に user1 / pass1 でユーザを登録します。
sakuradb=# create user user1 with password 'pass1';
CREATE ROLE
+ 以下のコマンドでユーザ一覧を表示して確認します。
sakuradb=# select usename from pg_user;
usename
---------
sakura
user1
(2 行)
+ psqlコマンド \q で終了します。
sakuradb=# \q
$
* 作成したユーザーでデータベースに接続してみる [#ja2a3b93]
作成した user1 ユーザーで接続しテーブル作成および行追加を...
+ 作成したユーザーでデータベースに接続。
$ psql -U user1 sakuradb
psql (12.1)
"help"でヘルプを表示します。
sakuradb=>
+ テーブル作成、行追加、行クエリーを実行しました。
sakuradb=> create table t1 (a int, b int);
CREATE TABLE
sakuradb=> insert into t1 values(1,1),(2,2);
INSERT 0 2
sakuradb=> select * from t1;
a | b
---+---
1 | 1
2 | 2
(2 行)
sakuradb=> \q
* データベースの停止とcygserverの停止 [#j7c3b358]
以下に PostgreSQLの停止とcygserverの停止手順を記します。
+ 以下のコマンドでPostgreSQLを停止させます。~
起動時はstartだったところをstopにするだけです。
$ /usr/sbin/pg_ctl -D $HOME/pgdata/ stop
サーバ停止処理の完了を待っています....完了
サーバは停止しました
+ cygserverを以下のコマンドで停止させます。
/usr/sbin/cygserver --shutdown
実際にコマンドを実行した時の出力です。
$ /usr/sbin/cygserver --shutdown
cygserver: Shutdown finished.
* cygserverのアンインストール(Cygwinをアンインストールす...
cygserverはサービスに登録されています。~
Cygwinをアンインストールする前に、以下のコマンドでcygserv...
(''管理者権限''でCygwin Terminalを起動してください)
+ 登録されているサービスを以下のコマンドで確認します。
cygrunsrv -L
+ 以下のコマンドでcygserverサービスを削除します。
cygrunsrv --remove cygserver
以上、CygwinでPostgreSQLを起動する手順でした。
#htmlinsert(win-btm.html)
終了行:
#navi(../)
* CygwinでPostgreSQLを実行する手順 [#j0a7079a]
「Windows環境を汚したくないなぁ。そうだ!CygwinのPostgreS...
と思って作業をした備忘録になります。~
サービス(デーモン)として動かすのではなく、~
Cygwin Terminalからコマンドで実行、操作、停止までの手順と...
postgresユーザーなども作成せず、まずはCygwin上でPostgreSQ...
PostgreSQLをサービスに登録したくない!という人には役に立...
#htmlinsert(win-top.html)
#contents
* 使用環境 [#j2fd0cde]
- Windows 10 ver.1909 64bit
- Cygwin バージョン
$ uname -r
3.1.2(0.340/5/3)
* PostgreSQLのインストール [#ra7def0b]
PostgreSQLはCygwinが提供しているパッケージをインストール...
インストール手順は、setup-x86_64.exe を起動して postgresq...
+ View を Full にします。
+ Search に postgresql を入力します。
+ postgresql をクリックします。
+ ▼をクリックし、12.1-1 を選択しました。
+ 「次へ」ボタンをクリックしインストールします。
#ref(01.png)
#br
+ 以下の画面が表示されるので、「次へ」ボタンをクリックす...
#ref(02.png)
#br
+ インストール中はプログレスバーが表示されます。
+ 完了画面のキャプチャになります。~
完了ボタンを押せば postgresql パッケージのインストールは...
#ref(03.png)
* Cygwin Terminal を起動し PostgreSQLを起動するまで [#lad...
以下、Cygwin Terminal を起動し、PostgreSQLを起動するまで...
+ Cygwin Terminal を''管理者権限''で起動します。
+ cygserver-config コマンドを実行し、サービスに登録します...
cygserver-config
+以下のようなメッセージが表示されるので、途中、''yes'' を...
$ cygserver-config
Generating /etc/cygserver.conf file
Warning: The following function requires administrator p...
Do you want to install cygserver as service?
(Say "no" if it's already installed as service) (yes/no)...
The service has been installed under LocalSystem account.
To start it, call `net start cygserver' or `cygrunsrv -S...
Further configuration options are available by editing t...
file /etc/cygserver.conf. Please read the inline inform...
file carefully. The best option for the start is to just...
Basic Cygserver configuration finished. Have fun!
&color(red){cygserverをサービスに登録しないとPostgreSQLが...
$ /usr/sbin/initdb.exe -D $HOME/pgdata
<snip>
ブートストラップスクリプトを実行しています ... 2019-12-2...
2019-12-23 20:23:08.986 JST [994] 詳細: 失敗したシステ...
子プロセスが終了コード1で終了しました
<snip>
+PostgreSQLを以下の手順で起動します。~
Cygwin Terminalを管理者権限で起動する必要はありません。
+ cygserverを起動します。
$ /usr/sbin/cygserver &
以下のメッセージが表示されれば成功です。
cygserver: Initialization complete. Waiting for requests.
+ PostgreSQLを起動するためにデータベース初期化コマンド in...
上記メッセージが表示されプロンプト($)が表示されていないよ...
なので、Enterキーを押せばプロンプト($)のみが表示されます。
$ /usr/sbin/initdb -D $HOME/pgdata
本記事では、ホームディレクトリ直下にデーベースを作成しま...
以下、実際にinitdbを実行して出力されたものです。
$ /usr/sbin/initdb -D $HOME/pgdata
データベースシステム内のファイルの所有者はユーザ"sakura"...
このユーザをサーバプロセスの所有者とする必要があります。
データベースクラスタはロケール"ja_JP.UTF-8"で初期化され...
デフォルトのデータベース符号化方式はそれに対応してUTF8に...
initdb: could not find suitable text search configuratio...
デフォルトのテキスト検索構成は simple に設定されます。
データベージのチェックサムは無効です。
ディレクトリ/home/sakura/pgdataを作成しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 20
デフォルトの shared_buffers を選択しています ... 128MB
selecting default time zone ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok
initdb: 警告: ローカル接続に対して"trust"認証を有効にし...
pg_hba.confを編集する、もしくは、次回initdbを実行する時...
あるいは --auth-local および --auth-host オプションを使...
ことがきます。
成功しました。以下のようにしてデータベースサーバを起動す...
/usr/sbin/pg_ctl -D /home/sakura/pgdata -l ログファ...
+ PostgreSQLを起動します。
/usr/sbin/pg_ctl -D $HOME/pgdata -l /tmp/postgresql.log ...
ログは/tmpに出力するように設定し起動しています。
$ /usr/sbin/pg_ctl -D $HOME/pgdata -l /tmp/postgresql.lo...
サーバの起動完了を待っています....完了
サーバ起動完了
上記のように出力されれば PostgreSQL の起動は成功です。
* データベース作成とユーザー作成 [#i6c98b84]
PostgreSQLが起動したのでデータベースとユーザーを作成しま...
+以下のコマンドでは、データベース名 sakuradb を作成します。
/usr/bin/createdb sakuradb
何も表示されず、プロンプト($)が表示されれば成功です。
+ データベースが作成されたかをコマンドで確認しています。~
確認作業なので、本コマンド実行は必須ではありません。
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | C...
-----------+--------+------------------+-------------+--...
postgres | sakura | UTF8 | ja_JP.UTF-8 | j...
sakuradb | sakura | UTF8 | ja_JP.UTF-8 | j...
template0 | sakura | UTF8 | ja_JP.UTF-8 | j...
| | | | ...
template1 | sakura | UTF8 | ja_JP.UTF-8 | j...
| | | | ...
(4 行)
sakuradbが存在しているのが確認できます。
+ データベースに接続し、ユーザ名 user1, パスワード pass1 ...
+ 以下のコマンドで作成した sakuradb に接続します。
psql sakuradb
成功すると以下のメッセージが出力されます。
$ psql sakuradb
psql (12.1)
"help"でヘルプを表示します。
sakuradb=#
+ 以下の構文でユーザーを追加することができます。
CREATE USER ユーザ名 WITH PASSWORD パスワード ;
実際に user1 / pass1 でユーザを登録します。
sakuradb=# create user user1 with password 'pass1';
CREATE ROLE
+ 以下のコマンドでユーザ一覧を表示して確認します。
sakuradb=# select usename from pg_user;
usename
---------
sakura
user1
(2 行)
+ psqlコマンド \q で終了します。
sakuradb=# \q
$
* 作成したユーザーでデータベースに接続してみる [#ja2a3b93]
作成した user1 ユーザーで接続しテーブル作成および行追加を...
+ 作成したユーザーでデータベースに接続。
$ psql -U user1 sakuradb
psql (12.1)
"help"でヘルプを表示します。
sakuradb=>
+ テーブル作成、行追加、行クエリーを実行しました。
sakuradb=> create table t1 (a int, b int);
CREATE TABLE
sakuradb=> insert into t1 values(1,1),(2,2);
INSERT 0 2
sakuradb=> select * from t1;
a | b
---+---
1 | 1
2 | 2
(2 行)
sakuradb=> \q
* データベースの停止とcygserverの停止 [#j7c3b358]
以下に PostgreSQLの停止とcygserverの停止手順を記します。
+ 以下のコマンドでPostgreSQLを停止させます。~
起動時はstartだったところをstopにするだけです。
$ /usr/sbin/pg_ctl -D $HOME/pgdata/ stop
サーバ停止処理の完了を待っています....完了
サーバは停止しました
+ cygserverを以下のコマンドで停止させます。
/usr/sbin/cygserver --shutdown
実際にコマンドを実行した時の出力です。
$ /usr/sbin/cygserver --shutdown
cygserver: Shutdown finished.
* cygserverのアンインストール(Cygwinをアンインストールす...
cygserverはサービスに登録されています。~
Cygwinをアンインストールする前に、以下のコマンドでcygserv...
(''管理者権限''でCygwin Terminalを起動してください)
+ 登録されているサービスを以下のコマンドで確認します。
cygrunsrv -L
+ 以下のコマンドでcygserverサービスを削除します。
cygrunsrv --remove cygserver
以上、CygwinでPostgreSQLを起動する手順でした。
#htmlinsert(win-btm.html)
ページ名: