とある日の妄想

- DB -

何気ない日常にふと思いついた世迷言をつづるブログ

 

rss-feedRSSフィード

■携帯版はこちら
http://blog.toaruhi.net/m/

携帯サイトQRコード

ブログ内検索

キーワード

 

※検索エンジンで検索した情報が見当たらない場合にご利用ください。

新着記事

カテゴリ一覧

外部リンク

創作物の規制/単純所持規制に反対する請願署名市民有志

作者について

全6件中1〜6件を表示
2008年03月13日(木)
MySQL InnoDB 8000Byte問題
DB
http://www.mysql.gr.jp/mysqlml/mysql/msg/12769

MySQLでテーブル型をInnoDBにしたとき、1行の値が8000Byte以上になるとエラーを吐く。
カラム数とかMySQLバージョンに依存するらしいけどバグらしい。

うっかり引っかかってしまった…。
めんどくせー


タグ:

コメント(0) トラックバック(0)
2007年07月19日(木)
OSX10.3.9にPostgreSQL8.2.4をインストール
DB
OSX版pgAdmin3を使おうとしたんだけどDBにコネクトできない。
PostgreSQLのバージョンが7系だとダメなんかな〜と思い、
8系にうpグレしてみることにした。

7のDBファイルはめんどいので破棄することに。
まぁたいしたDB作ってなかったし。

インストール結果、無事にpgAdminで接続できるようになった。
ばんざい。
ついでにSSLも設定しといた。

■簡易インストールメモ(OSX10.3.9)
※内容については責任を負いませんのでご注意。

適当なサーバからアーカイブを落とし、解凍終わったとこから。
OpenSSLインストール済み。

# cd postgresql-8.2.4
# ./configure --with-perl --with-openssl
# make
# make install

※--with-javaはJDBCドライバが同梱されなくなったため無視されてしまう

・権限変更
# chown -R postgres /usr/local/pgsql

・環境変数設定
# su - postgres
# cd ~/postgres
# vi .tcshrc

↓.tcshrc ファイルに以下の内容を記述↓

setenv POSTGRES_HOME /usr/local/pgsql
setenv PGLIB $POSTGRES_HOME/lib
setenv PGDATA $POSTGRES_HOME/data

setenv PATH ${PATH}:$POSTGRES_HOME/bin

↑.tcshrc ファイルの設定ここまで↑

root権限で/etc/sysctl.confファイルを作り以下を記述。

---- ここから -----

ysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024

---- ここまで -----
なんかこれやらないとエラーがでてDB起動できない。
記述後、再起動する。

・データベース初期化・起動
# initdb -D $PGDATA --encoding=UTF-8 --no-locale
# pg_ctl -o "-i --silent_mode=true" start

・/etc/hostconfig変更

以下の行を追加(サーバ再起動時自動で起動するように)。
POSTGRESQLSERVER=-YES-

■PostgreSQL SSL設定
posgresqlユーザでログイン

cd /usr/local/pgsql/data

1.openssl req -new -text -out cert.req

Using configuration from /usr/share/ssl/openssl.cnf
Generating a 1024 bit RSA private key
................++++++
.++++++
writing new private key to 'certkey.pem'
Enter PEM pass phrase: password←適当な秘密鍵ファイル用パスワード
Verifying password - Enter PEM pass phrase: password←再入力
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JA
State or Province Name (full name) [Some-State]:(都道府県名を英語で入力)
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:(組織名を英語で入力)
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:(サーバのアドレス入力)
Email Address []:(メアド入力)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

2.証明書の自己署名
openssl req -x509 -in cert.req -text -key privkey.pem -out server.crt
パスワード入力

3.秘密鍵からのパスワードの削除
openssl rsa -in privkey.pem -out server.key
パスワード入力

4. 権限変更
chmod 400 /usr/local/pgsql/data/server.*

5.postgresql.conf修正

#ssl = off # (change requires restart)

ssl = on # (change requires restart)

#password_encryption = on

password_encryption = on

6.pg_hba.conf修正
次の文を追加
hostssl all all 0.0.0.0/0 md5
(0.0.0.0/0はすべてのIPという意味)

7.DB再起動
pg_ctl stop
pg_ctl "-o -il --silent_mode=true" start

8.ユーザのパスワード設定(ここでは仮にpostgresユーザ)
psql
alter user postgres with password '********';
q

9.接続確認
psql -h サーバのアドレス -W
パスワード入力

再起動時のため、起動設定を変更

cd /Library/StartUpItems/PostgreSQL
vi PostgreSQL

StartService関数内の該当箇所を以下に変更
sudo -u $PGUSER $DAEMON start -D "$PGDATA" -s -l $PGLOG -o "-il"

RestartService関数内の該当箇所を以下に変更
sudo -u $PGUSER $DAEMON restart -D "$PGDATA" -s -m fast -o "-il"

以上。


タグ:

コメント(0) トラックバック(0)
2007年04月16日(月)
MySQL flush-host
DB
今朝から夕方までこのサーバでDB接続エラーが発生してた。
最初サーバ会社にメールしたときは、
「PGの不具合ではないか」ということだったので
エラーメッセージを確認して再度問い合わせ。

原因は、コネクションエラー限界を超えてロックがかかる現象。

http://dev.mysql.com/doc/refman/4.1/ja/blocked-host.html

エラーメッセージは、
Warning: mysql_connect(): Host 'xxxxx' is blocked because of many
connection errors. Unblock with 'mysqladmin flush-hosts'
見たいな感じ。

サクっと対処してくれるかなと思ったら。
なかなか返事がない。
その間なんども復旧しないかチェックしてたけどずっと障害ありのまま。

業を煮やして夕方再度メール。
状況を知らせよ、と。

そしたら、数分後、なんか復旧してて。
やっと対処してくれたのか、と思ってたらサポートからメールが。

内容は、大まかに言うと

「おかしくなってないですよ?ちゃんと確認してくださいね」

というもの。
んなバカなwwww

勝手に復旧したとはとても思えないが…。
まぁ、このサーバ会社への信用は0になった。
引越しの準備をせねば。

コメント(0) トラックバック(0)
2007年03月22日(木)
PostgreSQL vaccum処理
DB
大量のデータを一括投入するとき、トランザクションを何度も使うと
DBがめちゃくちゃ重くなることがある。
vacuumをすれば解決するみたいだけど、ウェブサーバユーザの権限で
vacuumコマンドを使うには、テーブルのオーナーを変更しておいたほうがいいみたいだ。

alter table hogehoge owner to www;

コメント(0) トラックバック(0)
2007年01月15日(月)
ORACLEメモ(2) 〜テーブル一覧・フィールド一覧〜
DB
■テーブル一覧を表示
select * from dba;

■フィールド一覧を表示
desc [テーブル名]

コメント(0) トラックバック(0)
2006年10月05日(木)
Oracleメモ
DB
Oracleを使ってみた。むずい。
テーブルを作るまでの流れは

・DBを新規に作る。
・リスナ設定
・表領域を作る(割り当てサイズを設定する)
・システムユーザでログインしDBユーザを作る。
・DBユーザに権限を割り当てる
・SQLスクラッチパッドからテーブル作成SQLを実行する。

みたいな感じ?

表領域っていう概念が最初よくわからんかった。
DBユーザに割り当てる権限もやまもり。

とりあえず

CREATE TABLE(テーブル作成権限)
CREATE SESSION(DB接続権限)

は設定する。

基礎から勉強しないとツライわw

コメント(0) トラックバック(0)


Dragon Quest 6

龍が如く4

FF13

THIS IS IT

ときめきメモリアル4

鉄拳6