アフィリエイト広告を利用しています

2021年02月19日

phpPgAdminで文字化け

phpPgAdmin でSQLを実行しても正しく動作しない。


 select * from tablename where columnname = '全角文字列'


あるはずのデータが表示されない。

SQL文を再表示すると、全角文字が文字化けして表示される。

Webで調べて、下のページを見つけた。

https://vyx02237.hatenadiary.org/entry/20110817/1313547433

記載どおりにして、文字化けを解消できた。

.htaccess

 php_value mbstring.internal_encoding "UTF-8"
 php_value default_charset "UTF-8"
 php_value mbstring.strict_detection "On"
 php_value mbstring.http_input "UTF-8"
 php_value mbstring.http_output "UTF-8"
 php_value mbstring.detect_order "UTF-8,SJIS,EUC-JP"
 php_value mbstring.language "Japanese"











posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2020年05月02日

かごやのデータベースサーバでPostgresに接続

PostgreSQLを使えるサーバ

PostgreSQLを使用する必要があり、

レンタルサーバを探したが、心当たりが全くない。

Webで見つけたのが、データベースサーバ。

最も安い共用コース(月額550円)に申し込んだ。

PostgreSQLのデータベースへの接続

早速、データベースを作成し、

別のWebサーバ(A)上のシステムから接続しようとした。

トラブル1

pg_connect()が見つからないという意味のエラーメッセージが表示された。

よくよく考えて見るとサーバ(A)にはPostgreSQL用の関数はインストールされていない。

サーバ(A)はMySQLの使用が標準とされている。

サーバ(A)は共用サーバなのでphpのconfig情報を変更することはできない。

仕方ないので、また別のWebサーバ(B)から接続を試みた。

サーバ(B)では現在、PostgreSQLが稼働している。

トラブル2

データベースサーバの管理画面で

データベースにアクセス可能なサーバとして、

サーバ(B)のIPアドレスを指定した。

しかし、サーバ(B)のシステムからデータベースサーバ上の

データベースに接続できない。


 host=xxxxxxxxxx.xxxxxxxxxx.xxx
 dbname=xxxxxxxxxx
 user=xxxxxxxx
 password=xxxxxxxxx


上記の設定に間違いはない。
やっと解決

ダメで元々と思い、

データベースサーバの管理画面で

データベースにアクセス可能なサーバに

サーバ(B)のIPアドレスではなくドメイン名を登録してみた。

すると逆引きされたIPアドレスが画面に表示された。

そのIPアドレスは先程、登録したIPアドレスと数字が一つ違っていた。

サーバ(B)のIPアドレスを間違えていたことが接続できない理由だった。

あきれてしまった。

かごやのデータベースサーバ

月額料金は安く、最低使用期間も設定されていない。

管理画面も使い易かった。優れものだ。もっと使ってみよう。









posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2020年04月25日

PostgreSQLのデータベースサイズ

参考URL https://qiita.com/memil/items/44b4033c810aada6eae5

簡単な方法


SQLコマンドを使用


 SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;


実行結果

postgres0.png

目指すデータベースのサイズは28MBでした。


少し手の込んだ方法



 SELECT datid,datname FROM pg_stat_database;


実行結果

postgres1.png

datidはoidを指しているそうです。今は16385のディレクトリを探します。

使用中のサーバでは /var/lib/pgsql/data/base 配下に

oid のディレクトリがありました。


 # cd /var/lib/pgsql/data/base
 # du -sh ./*


結果は

postgres2.png

16385のディレクトリは29MBです。

最初の方法と誤差がありました。








posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2018年08月31日

削除したカラムが残っている? pg.dropped.

テーブルAには107個のカラムがあるのだが

pg_attributeテーブルを確認すると、なぜかカラムが109個ある。


 select * from pg_attribute where attrelid = 16649 and attnum > 0

 注)16649はテーブルID、attnum > 0 は oid などのシステム項目を除外

カラムattname にこんなデータがあった。
 pg.dropped.92.
 pg.dropped.93.

削除したカラムがこんな形で残っていた。

普通にSQL文を実行するには問題ないが、

システムテーブルから情報を取得していると、

上記の余分な項目があるために誤った数値になりかねない。


pg.dropped. のデータは削除できないので、

テーブルを新規に作成し、データをインポートした。

解決した。

テーブルIDは以下で確認した。


 select oid from pg_class where relname = 'テーブル名'











posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

2018年08月01日

項目追加・削除 - ALTER TABLE -


ALTER TABLE tbl_name ADD 項目名 column_definition;
ALTER TABLE tbl_name ADD 項目名 column_definition AFTER 直前の項目名;
ALTER TABLE tbl_name DROP 項目名;


項目追加
 例:ALTER TABLE meibo ADD address character varying(100);
   meiboテーブルに address 項目を追加

項目追加(指定項目の後ろに挿入)
 例:ALTER TABLE meibo ADD email character varying(100) AFTER address;
   meiboテーブルの address 項目の後ろに email 項目を追加

項目削除
 例:ALTER TABLE meibo DROP fax;
   meiboテーブルから fax 項目を削除









posted by db-engineer at 00:00 | Comment(0) | PostgreSQL

最新記事
検索
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド