Posts tagged database

Postfix でバーチャルドメインの設定メモ

3

Postfix で syuhari.jp というドメインの設定が終了していることを前提にします。
追加するドメインを example.com とします。

Postfix は mydestination に設定したドメイン宛のメールをユーザのメールボックスに配送します。ユーザ名がかぶっていない場合は mydestination に example.com を追加するだけで OK です。
しかし、hoge@example.com と hoge@syuhari.jp というメールを別々のユーザに配送したい場合はこの設定ではできません。
(続きを読む…)

Mac に PostgreSQL をインストール

1

Mac に MacPorts で PostgreSQL をインストールしてみました。

まず PostgreSQL があるか調べてみる。PostgreSQL8.3 が最新のようです。

$ port search postgresql
postgresql7                    databases/postgresql7 7.4.21       The most advanced open-source database available anywhere
postgresql80                   databases/postgresql80 8.0.17       The most advanced open-source database available anywhere
postgresql80-doc               databases/postgresql80-doc 8.0.17       Documentation for the postgresql database
postgresql80-server            databases/postgresql80-server 8.0.17       run postgresql80 as server
postgresql81                   databases/postgresql81 8.1.13       The most advanced open-source database available anywhere
postgresql81-doc               databases/postgresql81-doc 8.1.13       Documentation for the postgresql database
postgresql81-server            databases/postgresql81-server 8.1.13       run postgresql81 as server
postgresql82                   databases/postgresql82 8.2.9        The most advanced open-source database available anywhere
postgresql82-doc               databases/postgresql82-doc 8.2.9        Documentation for the postgresql database
postgresql82-server            databases/postgresql82-server 8.2.9        run postgresql82 as server
postgresql83                   databases/postgresql83 8.3.3        The most advanced open-source database available anywhere.
postgresql83-doc               databases/postgresql83-doc 8.3.3        Documentation for the postgresql database
postgresql83-server            databases/postgresql83-server 8.3.3        run postgresql83 as server
postgresql_autodoc             databases/postgresql_autodoc 1.25         Automatic documentation generator for postgresql databases
caml-postgresql                devel/caml-postgresql 1.8.2        OCaml-interface to the PostgreSQL-database
postgresql-jdbc                java/postgresql-jdbc 8.0-311      PostgreSQL JDBC driver
py-postgresql-exception        python/py-postgresql-exception 0.2          exceptions for the py-postgresql modules
py-postgresql-greentrunk       python/py-postgresql-greentrunk 0.1          greentrunk interface to postgresql
py-postgresql-layout           python/py-postgresql-layout 0.3          layout for the py-postgresql modules
py-postgresql-pqueue           python/py-postgresql-pqueue 0.1          pure python implementation of the pq protocol
py-postgresql-proboscis        python/py-postgresql-proboscis 0.1          postgresql database connector in pure python

(続きを読む…)

[symfony] askeet 2日目

1

無事デバッグモードも表示できたので askeet 2日目に進みました。

データベースの設定

データベース askeet を作成
$ mysqladmin -u username -p --default-character-set=utf8 create askeet

(続きを読む…)

[symfony] askeet 1日目

4

symfony を学習するために askeet を順番にやっていくことにしました。まずは1日目です。
(続きを読む…)

WordPress の設定を使ってデータベースにアクセスする方法

8

WordPress をプラグインの作成やカスタマイズするときに WordPress のデータベースの設定を使用してアクセスする方法です。

WordPress では wpdb のオブジェクトが $wpdb というグローバル変数に入っています。この wpdb クラスを使用してデータベースにアクセスします。wpdb クラスは wp-includes/wp-db.php で定義されています。

SQL を発行する

$wpdb->query('SQL文');

(続きを読む…)

CakePHP1.2 文字コードを EUC-JP に設定する

1

現在開発しているシステムが文字コードを EUC-JP で制作しなければいけないのですが、今まで CakePHP は UTF-8 でしか制作したことがなく、設定方法などメモしておきます。開発に使用しているのは CakePHP1.2 です。

データベースの文字コード

app/config/database.php

var $default = array(
    'driver' => 'mysql',
    'persistent' => false,
    'host' => 'localhost',
    'port' => '',
    'login' => 'user',
    'password' => 'password',
    'database' => 'database_name',
    'schema' => '',
    'prefix' => '',
    'encoding' => 'ujis'
);

EUC のときは encoding に ujis と設定します。
ちなみに
Shift-JIS のときは sjis
UTF-8 のときは utf8
とします。
これは MySQL の SET NAMES でそのまま使用されるためです。

システムの文字コード

CakePHP1.2 では下記のように設定します。
app/config/core.php
Configure::write('App.encoding', 'euc-jp');

CakePHP 1.1 の方法はちょっとコードを調べたのですが、 core.php などにも特に設定するところがなく分かりませんでした。分かる方いらっしゃったら教えてください。

PostgreSQL のバックアップとリストア

1

PostgreSQL のバックアップとリストア方法のメモ

postgres ユーザになる

$ su - postgres
パスワードを設定していれば聞かれるので入力する。(当然ですが)

データのバックアップ

$ pg_dump DATABASE_NAME > BACKUP_FILENAME

データのリストア

$ psql -e DATABASE_NAME < BACKUP_FILENAME

データベースの作成

$ createdb DATABASE_NAME

データベースの削除

$ dropdb DATABASE_NAME

CakePHP 環境によってデータベースを切り替える

2

テストデータを入れるなどテストと環境でデータベースを切り替えたいときがあります。
CakePHP でそれをやる方法です。

モデルの $useDbConfig に app/config/database.php で定義されている $default がデフォルトで使用されます。
database.php に $test など使用したいデータベースの分だけ定義を増やし、
それをモデルで
$this->useDbConfig = 'test';
のように指定すればいいだけです。

app/app_model.php のコンストラクタで設定するのが一番簡単かもしれません。

CakePHP 環境に応じてDBの設定を変える | Shin x blog
で色々な方法が紹介されています。

“CakePHPで超簡単スケーラビリティ” フォーラム – CakePHP Users in Japan
また、この $useDbConfig を使用して

「マスターとスレーブのMYSQLサーバがあります。レプリケーション機能で、マスターからスレーブにデータが常にコピーされています。データの更新・追加はマスターに対して行い、データの検索はスレーブで、という場合にはどうすればよいでしょうか?」

というような場合のすごく簡単な方法が紹介されています。
モデルの beforeSave,afterSave,beforeDelete,afterDelete を使用してマスターとスレーブを切り替えています。

CakePHP MySQL で文字化けを防ぐ設定

4

MySQL で文字化けを防ぐためには
SET NAMES utf8
のように SET NAMES を実行するのが有効なのですが、これを app/config/database.php で設定する方法です。

'encoding'=>'文字コード'
をデータベースの設定項目に追加してやるだけです。

具体的には app/config/database.php が下記のようになります。

var $default = array(
    'driver' => 'mysql',
    'connect' => 'mysql_connect',
    'host' => 'localhost',
    'login' => 'user',
    'password' => 'password',
    'database' => 'dbname',
    'prefix' => '',
    'encoding' => 'utf8'
);


cake/libs/model/dbo/dbo_mysql.php
で下記のように実行されています。

function connect() {
    (略)
    if (isset($config['encoding']) && !empty($config['encoding'])) {
        $this->setEncoding($config['encoding']);
    }

    return $this->connected;
}
function setEncoding($enc) {
    return $this->_execute('SET NAMES ' . $enc) != false;
}
Go to Top