この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
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"
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"
2020年05月02日
かごやのデータベースサーバでPostgresに接続
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アドレスを間違えていたことが接続できない理由だった。
あきれてしまった。
かごやのデータベースサーバ
月額料金は安く、最低使用期間も設定されていない。
管理画面も使い易かった。優れものだ。もっと使ってみよう。
2020年04月25日
PostgreSQLのデータベースサイズ
参考URL https://qiita.com/memil/items/44b4033c810aada6eae5
SQLコマンドを使用
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
実行結果
目指すデータベースのサイズは28MBでした。
SELECT datid,datname FROM pg_stat_database;
実行結果
datidはoidを指しているそうです。今は16385のディレクトリを探します。
使用中のサーバでは /var/lib/pgsql/data/base 配下に
oid のディレクトリがありました。
# cd /var/lib/pgsql/data/base
# du -sh ./*
結果は
16385のディレクトリは29MBです。
最初の方法と誤差がありました。
簡単な方法
SQLコマンドを使用
SELECT datname, pg_size_pretty(pg_database_size(datname)) FROM pg_database;
実行結果
目指すデータベースのサイズは28MBでした。
少し手の込んだ方法
SELECT datid,datname FROM pg_stat_database;
実行結果
datidはoidを指しているそうです。今は16385のディレクトリを探します。
使用中のサーバでは /var/lib/pgsql/data/base 配下に
oid のディレクトリがありました。
# cd /var/lib/pgsql/data/base
# du -sh ./*
結果は
16385のディレクトリは29MBです。
最初の方法と誤差がありました。
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 = 'テーブル名'
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 = 'テーブル名'
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 項目を削除