サービス仕様~MySQL(新規販売終了)
1.概要
オプションサービスのデータベースMySQL にお申し込み頂くと、MySQLによる本格的なRDBMS(リレーショナルデータベース管理システム)をご利用頂くことができます。
このページにはお申し込み手続き完了後の使用方法を記載しています。
2.サーバーの仕様
WebARENA SuiteXのデータベースMySQLオプションサービスでは、データベースエンジンにMySQL 4.1を使用しています。対応している文字コードはEUCです。
サーバーの構成は、以下の図の様になっています。
WebARENA SuiteXのMySQLデータベースサーバーは、ご契約頂いているWebARENA SuiteXサーバーとは別に設置されている、専用のサーバーに格納されています。
SuiteXのMySQLデータベースは、MyISAM、InnoDBの両テーブルタイプに対応しております。
何も指定しないでテーブルの作成を行った場合は、MyISAM型のテーブルが作成されます。
InnoDB型のテーブルをご利用されたい場合は、テーブル作成SQL文において、type='InnoDB'をご指定下さい。
WebARENA SuiteXのMySQLデータベースにアクセスする方法は2種類あります。
1つは専用の管理ツール「MySQLマネージャー」を使用してMySQLデータベースを操作する方法(図中 1)です。
管理ツール「MySQLマネージャー」については、 オンラインマニュアル - 管理ツール - MySQLマネージャー をご覧下さい
「MySQLマネージャー」は、データベースの管理を行うための管理ツールです。ブラウザ上にメニューが表示され視覚的に操作することができますので、メンテナンスを容易に行うことができます。
もう1つはご利用頂いているWebARENA SuiteXサーバーに、MySQLデータベースにアクセスするためのCGIプログラムをアップロードして(図中 2)、 そのCGIを通してMySQLデータベースにアクセスする方法(図中 3)です。通常はこちらの方法でご利用頂くことになります。 CGIプログラムは弊社ではご用意しておりませんので、お客さまにて必要な機能を持ったCGIをご用意下さい。
MySQLデータベースサーバーへの集中的な接続による負荷軽減のため、MySQLデータベースサーバーに同時アクセス数の制限を行っており、 制限値を超えた同時アクセスはできないようになっております。なお、具体的な制限値につきましては非公開とさせて頂いております。
3.使用容量について
WebARENA SuiteXのMySQLデータベースオプションサービスでは、最大1GBまでデータを収容することができます。
また、使用容量には、MySQLデータベースのシステムで使用している容量も含まれますので、ご了承下さい。
なお、容量制限にかかった場合、データベースへのデータ入力・編集・追加等の処理が出来なくなる、 データが破損する、MySQLデータベースサービスが停止する等の問題が発生する恐れがございます ので、適宜不必要なデータを削除して、空き容量の確保をして下さいますようお願い致します。
使用容量をご確認する方法に関しては、オンラインマニュアル -管理ツール-MySQLマネージャー をご覧ください。
4.CGIの言語とモジュール
MySQLデータベースにアクセスするためのCGIを作成する言語は、PHP5・Perl・C言語がご利用頂けます。
PHPでCGIを作成する場合、オンラインマニュアル - ホームページ - CGI・PHP・SSI のページに使用方法が記載されておりますので、はじめにそちらをご覧下さい。MySQLデータベースへの接続方法については、このページの「PHPを使う場合の利用例」をご覧下さい。
PerlでCGIを作成する場合、WebARENA SuiteXサーバーにはデータベース用のPerlモジュールとしてDBIおよびDBD::mysqlを用意しております。 Perlで作成したCGIプログラムからMySQLデータベースにアクセスする場合は、こちらをご利用下さい。
DBIモジュールのバージョンは、1.60がインストールされております。
どの言語を使用される場合でも、プログラム内で文字コードを明示的に指定してご使用ください。
例
"SET NAMES ujis"
指定していない場合、文字化けが発生する可能性が高くなります。
なお、モジュールの使用方法やCGIプログラムの記述方法につきましてはサポート対象外とさせて頂いております。
ご不明な場合はデータベース・CGI関連の書籍やWebサイト等をご覧下さい。
5.初期状態
WebARENA SuiteXのMySQLデータベースオプションでは、ご契約時に管理者用アカウントと初期データベース「sql_db」が作成されております。
MySQLデータベースオプションご契約後は、直ちに管理者用アカウントを使ってMySQLマネージャー、もしくはお客さまご契約のSuiteXサーバー上に設置したCGIから 「sql_db」にアクセスする事ができます。
管理ツール「MySQLマネージャー」や、データベースの作成・ユーザーの作成については、オンラインマニュアル - 管理ツール - MySQLマネージャー をご覧下さい。
管理ツール「MySQLマネージャー」のURLは以下のようになります。
https://(お客さまのMySQLデータベースサーバー名)/
6.PHPを使う場合の利用例
PHP5でCGIを作成し、SQL文を実行させてデータベース「sql_db」に「mysqltb」という名前のテーブルを作成する場合の手順です。こちらの方法を参考にご利用下さい。
- PHP5でCGIスクリプトを作成します。 実際にはお客さまの用途に合わせて作成して頂くことになりますが、ここでは例として以下のCGIスクリプトを作成します。
CGIスクリプトの中に、お客さまの環境に合わせて設定しなければならない部分があります。橙色の部分はお客さまの環境に合わせて書き換えて下さい。
#!/usr/local/bin/php
<HTML>
<HEAD>
<TITLE>PHP Test</TITLE>
</HEAD>
<BODY>
<?
/*
「$host」の後には、お客さまのMySQLデータベースサーバー名を設定して下さい。
「$dbname」の後には、初期時に作成されているMySQLデータベース、「sql_db」、もしくはお客さまが管理ツール「MySQLマネージャー」で 作成したデータベース名を設定して下さい。
「$user」の後には、お客さまのMySQLデータベース管理者用ユーザー名、 またはお客さまが作成したユーザー名を設定して下さい。
「$password」の後には、任意のユーザー(アカウント)に対して お客さまが設定したパスワードを設定して下さい。こちらの例の場合、それぞれの項目は以下のようになります。
*/
$host="abc.my0.suite.jp";
$dbname="sql_db";
$user="abc.my0.suite.jp";
$password="abcabc";
$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);
}
?> - 作成したCGIに適当な名前を付け、管理者用アカウント(admin)を使用してWebARENA SuiteXサーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。 正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。
- 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
7.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) = "abc.my0.suite.jp";
# my($dbname)には、初期時に作成されているMySQLデータベース、「sql_db」、もしくはお客さまが管理ツール「MySQLマネージャー」で作成したデータベース名を設定して下さい。
# 以下はdbnameが sql_db の場合の例です。
my($dbname) = "sql_db";
# my($username) にはお客さまのMySQLデータベース管理者用ユーザー名、
# または、お客さまが作成したユーザー名を設定して下さい。
# 以下はusernameが abc.my0.suite.jp の場合の例です。
my($username) = "abc.my0.suite.jp";
# my($passwd) には任意のユーザー(アカウント)に対してお客さまが設定したパスワードを設定して下さい。
# 以下はpasswdが abcabc の場合の例です。
my($passwd) = "abcabc";
# ポート番号
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 SuiteXサーバーの /cgi-bin ディレクトリに転送して下さい。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。 正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。
- 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればMySQLデータベースに対し任意の操作を行うことができます。
8.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 SuiteXサーバーの /cgi-bin ディレクトリに転送して下さい。 サーバーへファイルをアップロードする場合はFTPソフトの転送モードをバイナリモードに設定して下さい。バイナリモードで転送しない場合、正しく動作しなくなることがあります。
- 転送したCGIのパーミッションを 700(rwx------) に設定して下さい。
- CGIをブラウザから呼び出して実行させて下さい。 正しく実行されるとブラウザの画面に「MESSAGE : Success」と表示され、テーブルが作成されます。
- 管理ツール「MySQLマネージャー」にログインして、「mysqltb」という名前のテーブルが作成されていることを確認して下さい。
実行させるSQL文を変えればデータベースに対し任意の操作を行うことができます。