アカウンティングおよびレポートコンソールをインストールし、使用するためには、事前にデータベースソフトウェアをインストールし、適切に構成する必要があります。この節では、PostgreSQL データベース、MySQL データベース、または Oracle データベースを使ってデータベースソフトを設定する方法について説明します。
PostgreSQL データベースソフトウェアの詳細は、Postgres のマニュアルを参照してください。
PostgreSQL ソフトウェアのインストール後、データベースサーバーを起動できます。
PostgreSQL データベースソフトウェアをダウンロードし、コンパイルし、インストールします。データベースプロセスの所有者になるユーザーを作成します。通常、このユーザーは postgres です。環境に、PostgreSQL bin ディレクトリと必要な LD_LIBRARY_PATH 設定を追加します。
postgres ユーザーのホームディレクトリを作成します。
この例では、ホームディレクトリは /space/postgres/data になります。
% mkdir -p /space/postgres/data % useradd -d /space/postgres postgres % chown postgres /space/postgres/data % su - postgres |
PostgreSQL のマニュアルの説明に従って、データベースの設定を続行します。
> initdb -D /space/postgres/data creating directory /space/postgres/data... ok creating directory /space/postgres/data/base... ok creating directory /space/postgres/data/global... ok creating directory /space/postgres/data/pg_xlog... ok creating directory /space/postgres/data/pg_clog... ok creating template1 database in /space/postgres/data/base/1... ok creating configuration files... ok initializing pg_shadow... ok enabling unlimited row size for system tables... ok initializing pg_depend... ok creating system views... ok loading pg_description... ok creating conversions... ok setting privileges on built-in objects... ok vacuuming database template1... ok copying template1 to template0... ok Success. You can now start the database server using: postmaster -D /space/postgres/data or pg_ctl -D /space/postgres/data -l logfile start |
pg_hba.conf ファイルに、次のような変更を加えます。
その結果、データベースのスーパーユーザー postgres に、パスワード不要の無制限のアクセス権が付与されます。そして、その他のデータベースユーザーには、md5 暗号パスワードの使用が義務付けられます。末尾の 0 を除く nnn.nnn.nnn の部分は、実際のサブネットアドレスで置き換えます。また、ホスト IP アドレスに同様の行を追加して、ホスト単位でアクセス規則を追加することもできます。
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all postgres trust local all all md5 # IPv4-style local connections: #host all all nnn.nnn.nnn.0 255.255.255.0 md5
postgresql.conf ファイルに次の変更を加えることにより、ほかのホストからの TCP/IP アクセスを有効にします。
shared_buffers の値が max_connections の値の 2 倍以上であることを確認します。
tcpip_socket = true max_connections = 40 (increase if necessary)
データベースを起動します。
この例の -i は TCP/IP 通信、-S はサイレントモードを有効にします。
> postmaster -S -i |
インストールを検証します。
postgres ユーザーになり、次のコマンドを実行します。
% su - postgres > createuser -P test_user Enter password for new user: Enter it again: Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER > createdb -O test_user -E UNICODE test CREATE DATABASE |
データベースのスーパーユーザーになり、コマンドを実行します。
> psql test Welcome to psql 7.3, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit |
test=# create table test (x int, y text); CREATE TABLE test=# insert into test values (1, 'one'); INSERT 16982 1 test=# insert into test values (2, 'two'); INSERT 16983 1 test=# select * from test; x | y ---+------ 1 | one 2 | two (2 rows) test=# \q > psql -U test_user test Password: Welcome to psql 7.4.1, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit test=> |
データベースのテストが正常に完了したら、次のタスク、「PostgreSQL データベースを設定する方法」に進みます。
データベースのスーパーユーザー、たとえば postgres としてログインします。
# su - postgres |
> createuser -P arco_write Enter password for new user: Enter it again: Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER |
アカウンティングおよびレポート用のデータベースを作成します。
> createdb -O arco_write arco CREATE DATABASE |
データベースを読み取るためのデータベースユーザーを作成します。
arco_read ユーザーを使用しない場合、次の手順で使用する特権スクリプトの内容を修正する必要があります。
> createuser -P arco_read Enter password for new user: Enter it again: Shall the new user be allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n CREATE USER |
データベース管理者に、Oracle データベースのインスタンスについて問い合わせます。
このインスタンスは、データベースユーザー arco_write と arco_read を必要とします。arco_write ユーザーには、テーブル、ビュー、インデックスを作成または変更する特権が付与されます。arco_read ユーザーの特権は、あとで SQL スクリプトによって設定されます。
データベース管理者に、データベースの接続文字列を問い合わせます。
アカウンティングおよびレポートコンソールではビューが使用されるため、コンソールでは MySQL データベースのバージョン 5.0.x 以上がサポートされています。MySQL データベースソフトウェアの詳細については、MySQL のマニュアル を参照してください。
MySQL では、データベースはデータディレクトリ内のディレクトリに対応しています。データベース内の各テーブルは、データベースディレクトリ内の 1 つ以上のファイルに対応しています。その結果、基礎となっているオペレーティングシステムで大文字と小文字が区別されるかどうかによって、データベース名とテーブル名で大文字と小文字が区別されるかどうかが決まります。したがって、ほとんどの種類の UNIX ではデータベース名とテーブル名で大文字と小文字が区別され、Windows では区別されません。
システムに応じた MySQL ソフトウェアを、http://www.mysql.com からダウンロードします。
UNIX システムでの標準インストールディレクトリは /usr/local/mysql です。これとは異なるディレクトリにソフトウェアをインストールするには、パッケージに付属するスクリプトを変更する必要があります。
ARCo は Java Web ベースのアプリケーションであり、JDBC コールを MySQL データベースで使用されるネットワークプロトコルに変換するために、 JavaTM データベース接続 (JDBCTM) ドライバが必要です。JDBC ドライバは http://www.mysql.com/products/connector からダウンロードできます。
インストールディレクトリから mysql へのシンボリックリンクを作成します。
# ln -s $installation_directory/mysql-standard-5.0.26-solaris10-i386 mysql |
mysql ディレクトリには、いくつかのファイルとサブディレクトリがあります。
bin サブディレクトリには、クライアントプログラムとサーバーがあります。
MySQL サーバーおよびサーバー起動スクリプト。
mysqld は MySQL サーバーです。
mysqld_safe、mysql.server、および mysqld_multi はサーバー起動スクリプトです。
mysql_install_db では、データディレクトリと初期データベースが初期化されます。
mysqlmanager は MySQL インスタンスマネージャーです。
サーバーにアクセスするクライアントプログラム。
mysql は、SQL 文を対話的またはバッチモードで実行するためのコマンド行クライアントです。
mysqladmin は管理用クライアントです。
mysqlcheck では、テーブルの保守動作が実行されます。
mysqldump および mysqlhotcopy では、データベースのバックアップが作成されます。
mysqlimport では、データベースファイルがインポートされます。
mysqlshow では、データベースとテーブルに関する情報が表示されます。
サーバーから独立して動作するユーティリティープログラム。
myisamchk では、テーブルの保守動作が実行されます。
myisampack では、圧縮された読み取り専用のテーブルが作成されます。
mysqlbinlog は、バイナリのログファイルを処理するためのツールです。
perror では、エラーコードの意味が表示されます。
scripts サブディレクトリには、サーバーのアクセス権が格納された付与テーブルを含んだ mysql データベースの初期化に使用される mysql_install_db スクリプトがあります。
mysqld のログインユーザーとグループを追加します。
# groupadd mysql # useradd -g mysql mysql |
プログラムのバイナリの所有者を root に変更し、データディレクトリの所有者は mysqld の実行に使用するユーザーにします。
# chown -R root . # chown -R mysql data # chgrp -R mysql . |
MySQL の付与テーブルを作成します。
# scripts/mysql_install_db --user=mysql |
MySQL サーバーを起動します。
# bin/mysqld_safe --user=mysql & |
root のパスワードを指定します。
# ./bin/mysqladmin -u root password 'new-password' # ./bin/mysqladmin -u root -h ${hostname} password 'new-password' |
起動時に MySQL サーバーを開始するには、support-files/mysql.server を /etc/init.d にコピーし、 /etc/rc3.d/S99mysql と /etc/rc0.d/K01mysql にリンクします。MySQL が /usr/local/mysql にインストールされていない場合は、ファイルを編集して basedir および datadir 変数を変更してください。
このディレクトリの完全パス名を PATH 環境変数に追加し、シェルが MySQL プログラムを正しく検索できるようにしてください。
データベースにスーパーユーザーでログインします。
# mysql -u root -p<password>
ユーザーを作成し、arco_read および arco_write の権限を与えます。
mysql> GRANT ALL on *.* to 'arco_write'@'<hostname>' identified by '<password>' with GRANT OPTION; mysql> GRANT ALL on *.* to 'arco_write'@'localhost' identified by '<password>' with GRANT OPTION; mysql> GRANT ALL on *.* to 'arco_write'@'%' identified by '<password>' with GRANT OPTION; mysql> GRANT SELECT,SHOW VIEW on <db_name>.* to 'arco_read'@'<hostname>' identified by '<password>'; mysql> GRANT SELECT,SHOW VIEW on <db_name>.* to 'arco_read'@'localhost' identified by '<password>'; mysql> GRANT SELECT,SHOW VIEW on <db_name>.* to 'arco_read'@'%' identified by '<password>';
データベースに arco_write ユーザーでログインします。
# mysql -u arco_write -p<password>
アカウンティングおよびレポートデータベースを作成します。
mysql> CREATE DATABASE ARCO;
アカウンティングおよびレポートソフトウェアをインストールします。