hello foo bar Saba notePostgreSQLのテーブル、スキーマの操作、SQLの便利帳
Tag postgresqlを表示しています。
2019.12.11 水
psqlのログイン内でファイル出力する postgres=#
2019.11.19 火
クエリログを有効にする SQLの項目に移動して対象のインスタンスを選択し「インスタンスの詳細」ページを開きます。設定セクションの中で、まだ何も設定していない場合は、「データベースフラグが設定されていません」と表示されています。 そのセクションの下部に「設定を編集」という部分から入って、データベースフラグを設定します。 設定オプションの中にある「フラグ」の項目を開いて、データベースフラグを設定します。 × Close log_statement all を設定して、保存します。 ログはSlackDriverに保存されます。 ログの確認 すでに動いているDBであればロギングがはじまっています。まだ開発環境などでアクセスがない場合は確認のためにいくらかサーバーアクセスしておきます。 ク...
2019.11.18 月
version11の場合です。postgresql.confの修正だけでオーケー。 /var/lib/pgsql/11/data/postgresql.confを修正します。 #log_statement = 'none' # none, ddl, mod, all ↓ log_statement = 'all' # none, ddl, mod, all logの下のログファイルにクエリが出力される。11以前のデフォルトの設定はlog_directory = 'pg_log'になっているっぽい。11だとlog_directory = 'log'になってますね。 たぶん再起動しないとダメっぽい。 # systemctl restart postgresql-11.service 以下の場所に...
2019.11.6 水
GCPのCloud SQLの使い方です。初心者から上級者までいろいろ使えるCloud SQLですが、なかなかいろいろ覚えることが多くて難しいです。ここではある程度理解している中級者以上を対象に解説しています。ここではPostgreSQLの使い方を説明しています。 公式ドキュメント: – Cloud SQL – Cloud SQL for PostgreSQL のドキュメント Cloud SQL インスタンスを作成する Cloud SQLのインスタンスの作成をします。 インスタンス ID: (小文字、数字、ハイフンのみ使用できます。先頭には小文字を使用してください。インスタンスを削除した際も一週間ぐらい予約されたままになるっぽいので注意。) デフォルトのユーザー パスワ...
2019.10.25 金
公式ドキュメントはこちら。 Cloud SQL にデータをインポートする
2019.10.24 木
PostgreSQLにリモートホストから接続する方法です。インストール時のデフォルトではlocalhostのみの接続ができるようになっていますが、リモートホスト側の設定はされていません。 リモートホストからDBサーバーへのネットワークの確認 まずはリモートホスト側からDBサーバーへアクセスしてみます。nmapなどで通信自体とポートの確認をしておきます。 PortチェックテストのようなWEBツールもあります。 $ nmap TARGET_HOST ... 5432/tcp open postgresql ... 疎通できない場合は複数の原因が考えられるので、Firewallの設定やPostgreSQLのサービスの起動などいろいろ確かめる必要があります。今回この部分は割愛。 postgresql...
2019.10.24 木
PostgreSQLに接続する postgresqlに接続するモジュールが入っているか確認してください。 # php -m | grep pg pdo_pgsql pgsql ここらが入っていたらOKです。通常デフォルトでインストールされているので問題ないでしょう。 もっともプレーンな方法で接続してみます。 <?php echo "try to connect postgresql.\n"; $DBHOST = "127.0.0.1"; $DBPORT = "5432"; $DBNAME = "voyager"; $DBUSER = "voyager"; $DBPASS = "LyrxXVB9"; try { $dbh = new PDO("pgsql:host=$DBHOST;por...
2019.10.24 木
再起動時のエラー systemctl restart postgresql-11実行時に出るエラー。通常rootで再起動したらできる。Root以外で(postgresユーザー)で再起動する場合はrootのパスワードが要求されます。rootにパスワードが設定されていない場合は、このユーザー権限での再起動はできません。 Failed to restart postgresql-11.service: Access denied See system logs and 'systemctl status postgresql-11.service' for details. pg_ctlで別のディレクトリ(別のバージョン)を指していたりすることがあります。 pg_ctl reload pg_ctl...
2019.10.23 水
PostgreSQLのダンプとリストアは比較的mysqlライクなので、そんなに戸惑うことはないのですが、多少違うところ含めての備忘録です。 pg_dumpコマンド pg_dumpは以下の二種類の方法でdumpができます。 スクリプト形式(デフォルト) リストアに必要なSQLをそのまま吐き出してくれるダンプ方法です。psqlコマンドでそのままリストアできます。いわゆる普通のダンプ方法なのでデバックはしやすいです。 アーカイブ形式 バイナリの形で出力されます。リストアはpsqlコマンドでなくpg_restoreコマンドで行います。アーカイブ形式のは、指定したtableのみを選択してリストアできるというのと、データベース(テーブル)自体が巨大なデータの場合は圧縮して出力できるという利点あり。ダンプ...
2019.10.20 日
Cloud SQLはVMインスタンスなどとちょっと勝手が違うので備忘録的なメモ。 TerraformのAPIのDocumentはこちら。 google_sql_database_instance 正しい書き方にも関わらず以下のようなエラーが出るときがあります。 Error: Error, failed to create instance master-instance: googleapi: Error 403: Cloud SQL Admin API has not been used in project xxxxxxxxxxxx before or it is disabled. Enable it by visiting https://console.developers.goo...
2019.10.13 日
ひょんなことでpg_ctlが使えないことあります。 $ pg_ctl reload -bash: pg_ctl: コマンドが見つかりません 殆どの場合パスが通っていないだけ。 $ echo $PATH /usr/pgsql-12/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/pgsql/bin:/usr/local/bin:/var/lib/pgsql/bin:/usr/local/bin ん?なんか通ってるくさい? # find / -name "pgsql" /etc/sysconfig/pgsql /var/lib/pgsql いや、全然違う。postgresのホームを指しているっぽい。なんか問題...
2019.10.11 金
インストール 2019-10-11現在の最新のPostgresは11系になるのかなと思っていたら、もう12が出てますね。 E.1. Release 12 ここでは最新入れると何かといろいろあるので11の方をインストールします。 古いバージョンの確認、アンインストール 現行でインストールされているものを確認します。 # yum list installed | grep postgresql 9系がインストールされているので、アンインストールします。何も出てこないときはPostgresqlがまだインストールされていないので、remove不要。 postgresql.x86_64 9.2.24-1.el7_5 @base postgresql-libs.x86_64 9.2.24-1.el7_5...
2019.5.23 木
PostgreSQL11をDockerで構築します。 環境はMacで Docker version 18.09.2 docker-compose version 1.23.2 docker-machine version 0.16.1 Dockerfileの作成 適当なDockerのディレクトリを作成してDockerfileに以下を記述 FROM postgres:11.3 RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8 ENV LANG ja_JP.utf8 ビルドします。 $ docker build -t dev-postgres -f Dockerfile . 終わったら...
2018.11.26 月
PostgreSQLは優秀なデータベースなんですが、これまでの歴史の中でいろいろと複雑になっていて面倒になっているというのがあります。正直面倒臭い。でも優秀。MySQLの方が使いやすさで言えば断然使いやすい。最近は能力も拮抗しだしたし果たしてPostgreSQLを使う意味があるのか?と言われればそれまでですが、差別化っていう意味では非常に難しくなってますよ。 Ownerなのかuserなのか。 マニュアルとか読んでいるとuserとownerとroleがほんとよくわからないです。どうして「CREATE ROLE …」というコマンドがユザー作成のコマンドなのか?ほんとわかりません。直感的にcreate roleって個々の権限とか権限セットみたいなものを作るコマンドだと思うじゃないですか...
2018.11.22 木
インストールデータの入手(ダウンロード) インストールと設定 接続テスト、環境編数の設定(パスを通す) 動作確認 PostgreSQLをWindowsPCのローカル環境にインストールする手順です。MySQLはXAMPPとかにくっついているので便利なんですが、Postgresは自分でインストールしないと駄目です。 以下ダウンロードページに行って最新バージョンの「Windows x86-64」をダウンロードします。 Windows x86-64: 11.1 Download exeファイルなのでインストール方法はクリックするだけですね。 インストールと設定 postgresql-11.1-1-windows-x64.exeというexeファイルをクリックするとインストールが始まります。 格納先はこ...
2018.10.26 金
バージョン確認 $ psql —-version (ログインしてから、"# select version();") ログイン/ログアウト ログイン $ su - postgres $ psql (または psql -d postgres / psql -U postgres) postgres=# ログアウト postgres=# \q データベース (Database) postgres-# psql DATABASE_NAME ユーザーを指定してデータベースに入る postgres-# psql -U USER_NAME DATABASE_NAME データベースの一覧 =# \l (または $ psql -l) データベース切り替え(というか接続) postgres-# \c DATAB...
2018.10.26 金
Postgresqlの最新をインストールします。 基本はここから最新を探してくる。 PostgreSQL RPM Building Project – Repository Packages リポジトリの登録 CentOS 7 – x86_64をインストールします。 # yum -y install https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm インストール # yum -y install postgresql11-server postgresql11-devel postgresql11-contrib バージョン確認 # psql --versi...