アプリケーション~データベースMySQL
概要
オプションサービスのデータベースMySQLオプションにお申し込み頂くと、 MySQLによる本格的なRDBMS(リレーショナルデータベース管理システム)をご利用頂くことが出来ます。
このページにはお申し込み手続き完了後の使用方法を記載しています。
サーバの仕様
WebARENA Suite2のデータベースMySQLオプションサービスでは、データベースエンジンにMySQL 4.1を使用しています。対応している文字コードはEUCです。
サーバの構成は、以下の図の様になっています。

WebARENA Suite2のMySQLデータベースサーバは、ご契約頂いているWebARENA Suite2サーバとは別に設置されている、専用のサーバに格納されています。
Suite2のMySQLデータベースは、MyISAM、InnoDBの両テーブルタイプに対応しております。
何も指定しないでテーブルの作成を行った場合は、MyISAM型のテーブルが作成されます。
InnoDB型のテーブルをご利用されたい場合は、テーブル作成SQL文において、
type='InnoDB'をご指定下さい。
WebARENA Suite2のMySQLデータベースにアクセスする方法は2種類あります。
1つは専用の管理ツール「MySQLマネージャー」を使用してMySQLデータベースを操作する方法(図中 1)です。
管理ツール「MySQLマネージャー」については、オンラインマニュアル - 管理ツール - MySQLマネージャーをご覧下さい。
「MySQLマネージャー」は、データベースの管理を行うための管理ツールです。 ブラウザ上にメニューが表示され視覚的に操作することが出来ますので、メンテナンスを容易に行うことが出来ます。
もう1つはご利用頂いているWebARENA Suite2サーバに、MySQLデータベースにアクセスするためのCGIプログラムをアップロードして(図中 2)、 そのCGIを通してMySQLデータベースにアクセスする方法(図中 3)です。通常はこちらの方法でご利用頂くことになります。 CGIプログラムは弊社ではご用意しておりませんので、お客さまにて必要な機能を持ったCGIをご用意下さい。
MySQLデータベースサーバへの集中的な接続による負荷軽減のため、MySQLデータベースサーバに同時アクセス数の制限を行っており、 制限値を超えた同時アクセスはできないようになっております。なお、具体的な制限値につきましては非公開とさせて頂いております。
使用容量について
WebARENA Suite2のMySQLデータベースオプションサービスでは、最大1GBまでデータを収容することができます。
また、使用容量には、MySQLデータベースのシステムで使用している容量も含まれますので、ご了承下さい。
なお、容量制限にかかった場合、データベースへのデータ入力・編集・追加等の処理が出来なくなる、 データが破損する、MySQLデータベースサービスが停止する等の問題が発生する恐れがございますので、 適宜不必要なデータを削除して、空き容量の確保をして下さいますようお願い致します。
使用容量をご確認する方法に関しては、オンラインマニュアル -管理ツール-MySQLマネージャーを ご覧下さい。
CGIの言語とモジュール
MySQLデータベースにアクセスするためのCGIを作成する言語は、PHP4・PHP5・Perl・C言語がご利用頂けます。
PHPでCGIを作成する場合、オンラインマニュアル - ホームページ - CGI・PHP・SSIのページに使用方法が記載されておりますので、はじめにそちらをご覧下さい。 MySQLデータベースへの接続方法については、このページの「PHPを使う場合の利用例」をご覧下さい。
PerlでCGIを作成する場合、WebARENA Suite2サーバにはデータベース用のPerlモジュールとしてDBIおよびDBD::mysqlを用意しております。 Perlで作成したCGIプログラムからMySQLデータベースにアクセスする場合は、こちらをご利用下さい。
DBIモジュールのバージョンは、1.40がインストールされております。
どちらの言語をご利用になる場合も、モジュールの使用方法やCGIプログラムの記述方法につきましてはサポート対象外とさせて頂いております。
ご不明な場合はデータベース・CGI関連の書籍やWebサイト等をご覧下さい。
初期状態
WebARENA Suite2のMySQLデータベースオプションでは、ご契約時に管理者用アカウントと初期データベース 「sql_db」が作成されております。
MySQLデータベースオプションご契約後は、直ちに管理者用アカウントを使ってMySQLマネージャー、もしくはお客さまご契約のSuite2サーバ上に設置したCGIから「sql_db」にアクセスする事が出来ます。
管理ツール「MySQLマネージャー」や、データベースの作成・ユーザの作成については、オンラインマニュアル - 管理ツール - MySQLマネージャーをご覧下さい。
管理ツール「MySQLマネージャー」のURLは以下のようになります。
https://(お客さまのMySQLデータベースサーバ名)/
PHPを使う場合の利用例
PHP4でCGIを作成し、SQL文を実行させてデータベース「sql_db」に「mysqltb」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
- PHP4でCGIスクリプトを作成します。
実際にはお客さまの用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIスクリプトの中に、お客さまの環境に合わせて設定しなければならない部分があります。 橙色の部分はお客さまの環境に合わせて書き換えて下さい。
#!/usr/local/bin/php4
<HTML>
- <HEAD>
- <TITLE>PHP Test</TITLE>
- </HEAD>
- <BODY>
- <?
- /*
「$host」- の後には、お客さまのMySQLデータベースサーバ名を設定して下さい。
「$dbname」- の後には、初期時に作成されているMySQLデータベース、「sql_db」、もしくはお客さまが管理ツール「MySQLマネージャー」で 作成したデータベース名を設定して下さい。
「$user」- の後には、お客さまのMySQLデータベース管理者用ユーザ名、 またはお客さまが作成したユーザ名を設定して下さい。
「$password」- の後には、任意のユーザ(アカウント)に対して お客さまが設定したパスワードを設定して下さい。
- こちらの例の場合、それぞれの項目は以下のようになります。
- */
- $host="
- ";
- $dbname="
- ";
- $user="
- ";
- $password="
- ";
- $dbh = mysql_connect("$host", "$user", "$password");
- if(!$dbh){
- echo "MESSAGE : cannot connect!<BR>";
- }else{
- /* データベースエンジンに実行させるSQL文 */
- mysql_select_db($dbname);
- mysql_query("CREATE TABLE mysqltb(clumn_1 varchar(16))"); echo "MESSAGE : Success<BR>";
- mysql_close($dbh);
- }
- ?>
- </BODY>
</HTML> - 作成したCGIに適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればMySQLデータベースに対し任意の操作を行うことが出来ます。
Perlを使う場合の利用例
PerlでDBIおよびDBD::mysqlモジュールを使用したCGIを作成し、SQL文を実行させてMySQLデータベースサーバ内に「mysqltb」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
- PerlでCGIスクリプトを作成します。
実際にはお客さまの用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIスクリプトの中に、お客さまの環境に合わせて設定しなければならない部分があります。 橙色の部分はお客さまの環境に合わせて書き換えて下さい。
#!/usr/bin/perl
use DBI; # DBIモジュールのロード
use CGI;
main:{
- # my($hostname) にはお客さまのMySQLデータベースサーバ名を設定して
- # 下さい。
- # 以下はhostnameが abc.my0.suite.jp の場合の例です。
- my($hostname) = "
- ";
- # my($dbname) には、初期時に作成されているMySQLデータベース、
- #「sql_db」、もしくはお客さまが管理ツール「MySQLマネージャー」で
- # 作成したデータベース名を設定して下さい。
- # 以下はdbnameが sql_db の場合の例です。
- my($dbname) = "
- ";
- # my($username) にはお客さまのMySQLデータベース管理者用ユーザ名、
- # または、お客さまが作成したユーザ名を設定して下さい。
- # 以下はusernameが abc.my0.suite.jp の場合の例です。
- my($username) = "
- ";
- # my($passwd) には任意のユーザ(アカウント)に対してお客さまが設定
- # したパスワードを設定して下さい。
- # 以下はpasswdが abcabc の場合の例です。
- my($passwd) = "
- ";
- # ポート番号
- my($port) = "3306";
- # データベースエンジンに実行させるSQL文
- my($sql) = "CREATE TABLE mysqltb (clumn_1 varchar(16))";
- # データベースサーバと接続する
- # ※「$dbh」から「&print("$DBI::errstr");」までの間に改行は入れないで
- # 下さい。
- $dbh = DBI->connect("DBI:mysql:$dbname:host=$hostname", $username, "$passwd") || &print("$DBI::errstr");
- $que = $dbh->prepare("$sql")|| &print($dbh->errstr);
- # SQL文の実行
- $que->execute()|| &print($que->errstr);
- $que->finish();
- # データベースサーバとの接続を切る
- $dbh->disconnect;
- &print("Success");
}
sub print{
- my($error) = $_[0];
- print "Content-type:text/html\n\n";
- print "<HTML>\n";
- print "MESSAGE : $error";
- print "</HTML>\n";
- exit;
} - 作成したCGIに適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればMySQLデータベースに対し任意の操作を行うことが出来ます。
C言語を使う場合の利用例
C言語でCGIを作成し、SQL文を実行させてMySQLデータベースサーバ内に「mysqltb」という名前のテーブルを作成する場合の手順です。 こちらの方法を参考にご利用下さい。
- C言語でCGIのソースファイルを作成します。
実際にはお客さまの用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIソースファイルの中に、お客さまの環境に合わせて設定しなければならない部分があります。 橙色の部分はお客さまの環境に合わせて書き換えて下さい。
#include <stdio.h>
#include "mysql/my_global.h"
#include "mysql/mysql.h"
/*
HOSTNAME にはお客さまのMySQLデータベースサーバ名を設定して下さい。
以下はHOSTNAMEが abc.my0.suite.jp の場合の例です。
*/
#define HOSTNAME "abc.my0.suite.jp"
/*
DBNAME には、初期時に作成されているMySQLデータベース、「sql_db」、もしくはお客さまが管理ツール
「MySQLマネージャー」で 作成したデータベース名を設定して下さい。
以下はDBNAMEが sql_db の場合の例です。
*/
#define DBNAME "sql_db"
/*
USERNAME にはお客さまのMySQLデータベース管理者用ユーザ名、
または、お客さまが作成したユーザ名を設定して下さい。
以下はUSERNAMEが abc.my0.suite.jp の場合の例です。
*/
#define USERNAME "abc.my0.suite.jp"
/*
DBPASS には任意のユーザ(アカウント)に対してお客さまが設定したパスワードを設定して下さい。
以下はDBPASSが abcabc の場合の例です。
*/
#define DBPASS "abcabc"
/*
ポート番号
*/
#define MySQLPORT 3306
/*
テーブル作成のためのSQL文
*/
#define SQL "CREATE TABLE mysqltb(clumn1 int)"
MYSQL *mysql;
main(){- MYSQL_RES
- *res,
- *result ;
- //オブジェクトの初期化
- mysql = mysql_init( mysql ) ;
- //MySQLデータベースに接続
- if( !mysql_real_connect( mysql, HOSTNAME, USERNAME, DBPASS, DBNAME, MySQLPORT, NULL, 0 ) ){
- html("ERROR cannot connect");
- exit(0);
- }
- //データベースの選択
- if( mysql_select_db( mysql, DBNAME ) != 0 ) {
- mysql_close( mysql );
- html("ERROR mysql_select_db");
- exit(0);
- }
- //テーブル作成SQL文の実行
- if( mysql_query( mysql, SQL ) != 0 ){
- mysql_close( mysql );
- html("ERROR mysql_query");
- exit(0);
- }
- //クローズ
- mysql_close( mysql );
- html("Succsess");
- exit(0);
}
html(char *res){
- printf("Content-type:text/html\n\n");
- printf("<HTML>\n");
- printf("MESSAGE: %s", res);
- printf("</HTML>\n");
} - 作成したソースファイルに適当な名前を付けてファイルに保存して下さい。ここでは例としてmysqltest.cという名前を付けます。
- LinuxにMySQLをインストールしたコンピュータ上で、mysqltest.cをコンパイルして下さい。
MySQLのヘッダファイルが /usr/include/mysql ディレクトリ、ライブラリファイルが /usr/lib/mysql ディレクトリにある場合のコンパイル方法です。
gcc -g mysqltest.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient - コンパイルして出来たCGI (a.out) に適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA Suite2サーバーの /cgi-bin ディレクトリに転送して下さい。
サーバーへファイルをアップロードする場合はFTPソフトの転送モードをバイナリモードに設定して下さい。バイナリモードで転送しない場合、正しく動作しなくなることがあります。 - 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。
正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。 - 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればデータベースに対し任意の操作を行うことが出来ます。