Posts tagged database
Postfix でバーチャルドメインの設定メモ
3Postfix で syuhari.jp というドメインの設定が終了していることを前提にします。
追加するドメインを example.com とします。
Postfix は mydestination に設定したドメイン宛のメールをユーザのメールボックスに配送します。ユーザ名がかぶっていない場合は mydestination に example.com を追加するだけで OK です。
しかし、hoge@example.com と hoge@syuhari.jp というメールを別々のユーザに配送したい場合はこの設定ではできません。
(続きを読む…)
Mac に PostgreSQL をインストール
1Mac に 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
WordPress の設定を使ってデータベースにアクセスする方法
8WordPress をプラグインの作成やカスタマイズするときに 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 のバックアップとリストア
1PostgreSQL のバックアップとリストア方法のメモ
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 で文字化けを防ぐ設定
4MySQL で文字化けを防ぐためには
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; }