ようこそゲストさん

adiary manual

MySQLでの運用

はてブ情報 はてブに登録 はてブ数

MySQLで運用する場合は、adiary.conf.cgiを次のように書き換えます。

# 擬似データベースの場合
#<$DB = loadpm('DB_pseudo', "<@data_dir>db/")>   ←コメントアウト

# MySQL の場合(データベース名、ユーザー名、パスワード)
<$DB = loadpm('DB_mysql', 'database=adiary', 'adiary', 'test', 1.connection_pool, 'ujis')>
↑有効にする

UTF-8版を利用している場合は、最後が ujis ではなく utf8 になります。

本来的にはデータベース文字コードを運用文字コードと一致させてください。そうしないと、データにアクセスする度に文字コード変換処理が発生してしまいます*1

MySQLの文字コードの設定は文字化け問題を本気で直すが大変参考になります。

*1 : 利用する分にはまったく分かりませんが確実にアクセスが遅くなります

ローカル以外のMySQLに接続する場合

database=adiary の部分を次のように書き換えます。

<$DB = loadpm('DB_mysql', 'database=adiary;host=mysql.db-net.tdl', (略))>
<$DB = loadpm('DB_mysql', 'database=adiary;port=12345',(略))>
<$DB = loadpm('DB_mysql', 'database=adiary;host=10.45.67.89;port=12345',(略))>

コロン「":"」ではなくセミコロン「";"」です。ご注意ください。

環境設定メモ

コマンドはFedora Core を例に書かれています。各ディストリビューションによって適時読み替えてください。

  1. MySQL をインストールする。DBI, DBD::mysql もインストール。(4.1でテスト済)
    console~$ yum -y install mysql-server perl-DBD-MySQL
    
  2. データベースを初期化。最近のディストリビューションはデーモンを起動すれば勝手に作成してくれます。
  3. MySQL デーモンを起動する。
    console~$ /etc/init.d/mysqld start
    
  4. MySQL に接続する。
    console~$ mysql -u root
    console~$ mysql -u root -p	←パスワード指定あり
    
  5. MySQLコンソールで rootパスワード を設定する
    mysql> use mysql;
    mysql> select host,user,password from user;			←確認
    mysql> SET PASSWORD FOR root@localhost=PASSWORD('password');
    mysql> SET PASSWORD FOR root@your.host=PASSWORD('password');
    mysql> DELETE FROM user WHERE password='';
    
  6. adiary用のデータベース、ユーザーを作成
    mysql> CREATE DATABASE adiary DEFAULT CHARSET=ujis;
    mysql> GRANT all privileges ON adiary.* TO adiary@localhost IDENTIFIED BY 'password';
    
    ※権限をより制限したいときは下記でも構いません。
    mysql >GRANT create,delete,drop,index,insert,select,update,alter ON adiary.* TO adiary@localhost IDENTIFIED BY 'password';
    

メモ

コマンドのメモ

mysql> show tables;
mysql> show databases;
mysql> show variables like 'char%';
mysql> show create table table_name;
[mysqld]
default-character-set=ujis
# MySQL 4.1.15/5.0.13以降
skip-character-set-client-handshake

[client]
default-character-set=ujis
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis

# enabler 2007年09月25日(火) 午後1時50分

mysqlサーバーがlocalhostではなく別なサーバーの場合はどう設定すればいいですか?

# なべ 2007年09月25日(火) 午後6時39分

'database=adiary' となっている部分を書き換えます。
'database=adiary;host=192.168.x.yyy' や
'database=adiary;host=mysql.hostname;port=1234' です。
(コロンではなくセミコロン";"です。ご注意ください。)

# enabler 2007年09月26日(水) 午前10時34分

ありがとうございます。


#  非公開コメント   
  • TB-URL  http://adiary.org/man/08/tb/