Red Hat 7.3付属のMySQL 3.23.49環境(unixODBC,JDBC他)
VMware Workstation 3.2 for Windows上で動作させているRed Hat 7.3でMySQLを使用してみました。
MySQLは多くのプラットフォームで動作するフリーのRDBMS(リレーションナルデータベース管理システム)です。
Red Hat 7.3にもMySQL 3.23.49が標準でインストールされており手軽に利用することができます。
ここではMySQLのシンプルなデータベース例を使って関連ツール含めてMySQLの利用環境について簡単に紹介します。
更にStarOffice 6.0におけるunixODBC/JDBC経由でのMySQLデータベースの利用やWindowsアプリとのODBC連携についても紹介します。
1.Red Hat 7.3におけるMySQLのソフトウェア環境
Red Hat 7.3付属のMySQLのバージョンは3.23.49です(mysqlコマンドも3.23.49)。
/usr/binには次のようなMySQL関連の実行ファイルが格納されています。
mysql
mysqladmin
mysql_install_db 等
また/usr/include/mysqlはMySQLのヘッダファイルディレクトリであり、/usr/lib/mysqlはMySQLのライブラリディレクトリとなっています。
尚、MySQL用のODBCドライバ、JDBCドライバは別途用意する必要があります。
2.動作環境
- mysqlユーザについて
Red Hat 7.3の初期状態ではmysqlユーザ(mysqlグループ)がデフォルトで登録されています。
mysqlユーザのホームディレクトリは/var/lib/mysqlとなっていますが.bash_profileは存在しません。
尚、mysqlユーザのパスワードは初期状態では設定されていませんので「passwd mysql」でmysqlユーザのパスワードを設定しておきましょう。
- mysqlサービス設定
ntsysvコマンドでも確認できますが初期状態ではシステムブート時にMySQLサーバ(mysqld)が自動起動される設定にはなっていませんので別途自動起動する設定に変更します。
- MySQL用環境設定ファイル
MySQL用環境設定ファイル(/etc/my.cnf)にはデフォルト文字コードの指定はありませんので/etc/my.cnfの各セクションに「default-character-set=ujis」を追加設定しておきます。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=ujis
[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=ujis
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=ujis
3.データベースの初期化とサンプルデータベースの作成
- rootユーザでログイン
- MySQLサーバの手動起動
「safe_mysqld &」でMySQLサーバを手動起動します。
- データベースの初期化
データベースの初期化は「mysql_install_db --user=mysql」コマンドで行います。
データベースの初期化を実行すると/var/lib/mysqlに以下のデータベースディレクトリが作成されます。
mysql(これはMySQL管理情報の蓄積用です)
test(これはユーザが利用できるデータベースです)
- MySQLサーバの自動起動設定
ntsysvコマンドでmysqldのところに自動起動用チェックを入れます。
- rebootしてrootで再ログイン
- サンプルテーブルの定義
ここではtestデータベースにaptableというサンプルテーブル(アプリケーション管理テーブル)を作成することにします。
サンプルテーブルはmysqlコマンドを使用して次のように定義します。
create table aptable (
apname char(20) not null,
apversion char(10),
apcomment char(32),
apcount int,
primary key (apname)
);
mysqlコマンドによるaptable定義の実行例
尚、テーブルのインデックス情報を確認するには「show index from aptable;」を実行すればOKです。
- サンプルテーブルへのレコード登録
mysqlコマンドを使用し、insert文でレコードを登録して検索してみます。
- レコード更新
update文でレコードのカラム値を変更してみます。
4.RubyによるMySQLアクセス
RubyでMySQLをアクセスするにはMySQL用Ruby APIをインストールする必要があります。
- MySQL用Ruby APIの入手
http://www.tmtm.org/mysql/rubyからMySQLのRuby API用ファイルをダウンロードします。
今回ダウンロードしたファイルはmysql-ruby-2.4.3b.tar.gzというものです。
- MySQL用Ruby APIのインストール
MySQL用Ruby APIのインストールはrootで次のようにします。
tar xpvzf mysql-ruby-2.4.3b.tar.gz
cd mysql-ruby-2.4.3b
ruby extconf.rb --with-mysql-include=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql
make
ruby -I. ./test.rb pc_u10 root(ここでのpc_u10はホスト名です)
make install
- RubyスクリプトによるMySQLアクセス例
5.PHPによるMySQLアクセス
簡単なPHPスクリプトを作成しWebブラウザからMySQLの検索結果を表示させてみました。
6.phpMyAdmin
phpMyAdminはWebベースでMySQLを管理・維持するツールで、GUIベースでレコードの追加・更新・削除もできるようになっています。
しかしRed Hat 7.3にはphpMyAdminが含まれていないようです。
そこで今回はhttp://phpmyadmin.sourceforge.netからphpMyAdmin-2.3.2-php.tar.gzをダウンロードして使用してみました。
- インストール手順
インストールは以下の操作で行います。
mv phpMyAdmin-2.3.2-php.tar.gz /var/www/html
cd /var/www/html
tar xvzf phpMyAdmin-2.3.2-php.tar.gz
cd phpMyAdmin-2.3.2
gedit config.inc.php &
phpMyAdminの設定ファイルであるconfig.inc.phpの中を次のように変更します。
$cfg['DefaultLang'] = 'ja';
$cfg['Servers'][$i]['auth_type'] = 'http';
$cfg['Servers'][$i]['user'] = '';
これでインストールは完了です(makeとかmake installは不要です)。
- Mozillaからの利用
Mozillaからhttp://localhost/phpMyAdmin-2.3.2/index.phpを開きます。
まずログイン画面が出ますのでrootで入ります。
最初のページは英語で表示されますのでLanguage区分を「English(en-iso-8859-1)」から「Japanese(ja-euc)」に変更して日本語表示に切り替えます。
後は直感的な操作でMySQLの管理が容易に行えます。
testデータベースのaptableの構造表示画面例
- Windowsからの利用
WindowsのInternet Explorerからも操作できます。
7.StarSuite 6.0からのMySQL JDBCアクセス
Red Hat 7.3にはMySQLのJDBCドライバは標準装備されていないようです。
そこで今回はmysql.jarというJDBCドライバを組み込んで利用してみました。
このJDBCドライバを使用するとStarSuiteからJDBCでMySQLをアクセスできます。
- MySQLへのmysqlユーザの登録とアクセス許可設定
mysqlコマンドのgrant/set文を使用してMySQLにmysqlユーザとそのパスワードを登録します。
またtestデータベースの任意のテーブルについてどのホストからのアクセスも許可するようにしておきます。
- StarSuiteの表計算起動。
- [ツール]-[オプション]でStarSuiteの「セキュリティ」画面を開きます。
ClassPathとして上記のmysql.jarを選択します。
- 表計算の[ツール]-[データソース]で<新しいデータソース>ボタンを押します。
- 「全般」タブで下記を設定します。
名前:MySQL_test
データベースの種類:JDBCを選択
データソースURL:jdbc:mysql://pc_u10/testを指定します。
- 「JDBC」タブで下記を設定します。
JDBCドライバクラス:org.gjt.mm.mysql.Driver
ユーザ名:mysql
<パスワードが必要>:on
- <適用>ボタンで設定を有効にします。
- 表計算の[表示]-[データソース]を実行するとStarSuiteに登録したデータソースMySQL_testが表示されます。
MySQL_testのテーブルをダブルクリックするとユーザ名とパスワードの入力画面(ログイン画面)が出ます。
認証が完了するとJDBCデータソース内のテーブル一覧が表示され、aptableテーブルをダブルクリックするとテーブル内容が右側に表示されます。
またJDBCデータソース中のaptableを表計算側のシートにドラッグするとそのシートにテーブルデータが表示されます(下記画面参照)。
8.MySQL JDBC Javaアプレット(テーブルの検索アプレット例)
MySQLのJDBCを利用したJavaアプレットを試作してみました。
- mysqlユーザのJAVA環境変数の設定
mysqlユーザの.bash_profileにJAVA_HOMEとJAVA_CLASSを設定します。
尚、PATHには$JAVA_HOME/binを追加しておきます。
環境変数設定後はその環境変数設定を有効にします。
- Javaソースの準備
まず/var/lib/mysql/public_html内にmysql.jarを置きます。
次にJavaソース(ソース名:mqJdbcApplet.java)を完成させます。
【ポイント】
ドライバクラス:org.gjt.mysql.Driver
ドライバのローディングはClass.forName("ドライバクラス名")を使用します。
接続文字列:jdbc:mysql://マシン名/test
(ここでのマシン名はMySQLが動作しているマシンの名前です)
実際の接続はDriverManager.getConnection(接続文字列,ユーザ名,パスワード)で行います(ユーザ名,パスワードの引数は必須です)。
- Javaソースのコンパイル
「cd public_html」を実行します
「javac mqJdbcApplet.java」でJavaソースをコンパイルします。
mqJdbcApplet.classが作成されます。
- HTMLファイルの準備
public_html内にHTMLファイル(ファイル名の例:mqJdbcApplet.html)を準備します。
HTMLファイルのappletタグにはwidth, height以外に次の指定をしておきます。
codebase="." archive="mysql.jar" code="mqJdbcApplet"
- appletviewerでのJDBC Appletの動作確認
「appletviewer mqJdbcApplet.html &」でアプレットを実行できます。
但し、JDK 1.4.0付属のappletviewerではアプレット内の日本語が文字化けします。
そこでRed Hat 7.3に元々ある/usr/share/doc/ttfonts-ja-1.2/kochi-mincho-0.2.20020124/examples/font.properties.jaを/usr/java/j2sdk1.4.0/jre/lib/font.properties.jaに上書きコピーしておきます。
- Red HatのMozillaでのJDBC Javaアプレットの動作確認
Mozillaでhttp://マシン名/~mysql/mqJdbcApplet.htmlを開いてJavaアプレットを実行させます。
- Windows Internet ExplorerでのJDBC Javaアプレットの動作確認
9.unixODBC/MyODBCの利用によるStarSuite 6.0でのMySQL ODBCアクセス
Red Hat 7.3にはMyODBC 2.50.39が付属しています。
unixODBCとこのMyODBCを使用することでStarSuiteからMySQL ODBCアクセスが可能となります。
- ODBCドライバの登録
/etc/odbcinst.iniにMySQL ODBCドライバを登録します。
【登録例】
[MyODBC2]
Description = MyODBC2
Driver = /usr/lib/libmyodbc.so
- ODBCデータソースの登録
/etc/odbc.iniにMySQL ODBCデータソースを登録します(システムデータソース定義)。
【登録例】
[mysqltestodbc]
DRIVER = MyODBC2
DSN = mysqltestodbc
SERVER = pc_u10
DATABASE = test
USER = mysql
PASSWORD =
PORT = 3306
- StarSuiteへのデータソース登録
- StarSuiteの表計算を起動します。
- [ツール]-[データソース]で<新しいデータソース>ボタンを押します。
- 「全般」タブで下記を設定します。
名前:mysql_test_odbc
データベースの種類:ODBCを選択
データソースURL:sdbc:odbc:mysqltestodbc
- 「ODBC」タブで下記を設定します。
ユーザ名:mysql
<パスワードが必要>:on
ドライバの設定:なし
- <適用>ボタンで設定を有効にします。
- 表計算の[表示]-[データソース]を実行するとStarSuiteに登録したデータソースmysql_test_odbcが表示されます。
mysql_test_odbcのテーブルをダブルクリックするとテーブル一覧が表示され、aptableテーブルをダブルクリックするとテーブル内容が右側に表示されます。
(データの更新もそこでできます)
またデータソース中のaptableを表計算側のシートにドラッグするとそのシートにテーブルデータが表示されます(これはJDBCの場合と同じです)。
10.WindowsからのRed Hat内MySQLアクセス
MySQLをWindowsから利用するには様々な方法がありますがここではそのいくつかを紹介します。
- MySQL対応のWindows版ODBCドライバとWindows版クライアントツール
http://www.softagency.co.jp/mysql/pro/win_myodbc.htmlにはMySQL対応のWindows版ODBCドライバ「MyODBC-3.51.05.exe」及び、Windows版クライアントツールとWindows版日本語対応ODBCドライバがセットになった「windows+myodbc3-conv_ujis-20020409.zip」が公開されています。
Webページで説明されているインストール方法にしたがって上記をインストールします。
- Windows版ODBCドライバの利用
- MySQL用ODBCデータソースの定義
システムデータソースの定義で「MySQL ODBC 3.51 Driver」を選択しMySQL用ODBCデータソースを定義します。
この時「EUC変換する」オプションを有効にしておきます。
- MS Accessからのアクセス
Accessの[ファイル]-[外部データベースの取り込み]-[テーブルのリンク]でMySQLのODBCデータソースを選択しaptableをテーブルリンク対象にします。
これによってAccessからMySQLのaptableを操作できるようになります。
- Windows版クライアントツール
Windows版クライアントツールとして提供されるプログラムとしてはmysql.exe, mysqladmin.exe等があります。
例えばmysql.exeをコマンドラインから実行するには「mysql -h MySQLサーバホスト名 -u ユーザ名 データベース名」というように指定します。
mysql.exeの使用例
- CSE
CSE(Common SQL Environment)はMySQL, PostgreSQL, Oracleサーバとネーティブ接続してデータベース情報のブラウズ、SQLの実行、GUIベースでのレコード検索・追加・更新・削除等が行えるツールです。
ここではCSEのサンプル画面だけ紹介します。
11.日本語データについて
MySQLのデータベースに対していろいろな方法で日本語データを登録し、かつ日本語データを表示させてみました。
- 日本語入力環境
下記の環境で日本語データ入力が問題なく行えることを確認しました。
- Red Hat環境
- mysqlコマンド利用
- MozillaでのphpMyAdmin利用
- StartSuiteでのunixODBC接続環境
- Windows環境
- Internet ExplorerでのphpMyAdmin利用
- AccessからのODBC接続環境
- mysql.exeクライアント利用
mysqlのコマンドライン引数で「--convert_ujis」指定が必要です。
- CSE環境
- Tera Term Proからのtelnetによるmysqlコマンド利用
- 日本語表示環境
下記の環境で日本語データ表示が問題なく行えることを確認しました。
(代表的なものにだけサンプル画像を付けておきます)
12.サーブレット
Tomcatを導入してMySQLアクセス用のサーブレットを実行してみました。
13.Windows用StarSuiteからのMySQL JDBCアクセス
ここではWindows用のStarSuite 6 日本語版, StarSuite 7 日本語版(評価版)を使用してMySQLのデータをJDBCでアクセスする例を紹介します。
- Windows用のStarSuite 6 日本語版
- 使用するJDBCドライバ
StarSuite 6でのMySQL用推奨JDBCドライバは「mm.mysql-2.0.4-bin.jar」のようですので事前にhttp://mmmysql.sourceforge.net/からそのドライバをダウンロードしておきます。
尚、mm.mysqlドライバはmm.mysql-2.0.14になってからMySQL Connector/J 2.0.14という公式ドライバになったようです。
但し、MySQL Connector/J 2.0.14はLGPL版であり、MySQL Connector/J 3.0.0以降のドライバはGPL版となっています。
- StarSuiteの表計算起動。
- [ツール]-[オプション]でStarSuiteの「セキュリティ」画面を開きます。
ClassPathとしてmm.mysql-2.0.4-bin.jarを指定します。
- 表計算の[ツール]-[データソース]で<新しいデータソース>ボタンを押します。
- 「全般」タブで下記を設定します。
名前:MySQL_test
データベースの種類:JDBCを選択(StarSuite 6には「MySQL」という選択肢はありません)
データソースURL:jdbc:mysql://pc_u10:3306/testを指定します。
- 「JDBC」タブで下記を設定します。
JDBCドライバクラス:org.gjt.mm.mysql.Driver
ユーザ名:mysql
<パスワードが必要>:on
- <適用>ボタンで設定を有効にします。
- 表計算の[表示]-[データソース]を実行するとStarSuiteに登録したデータソースMySQL_testが表示されます。
MySQL_testのテーブルをダブルクリックするとユーザ名とパスワードの入力画面(ログイン画面)が出ます。
認証が完了するとJDBCデータソース内のテーブル一覧が表示され、aptableテーブルをダブルクリックするとテーブル内容が右側に表示されます(日本語が文字化けしてます)。
またJDBCデータソース中のaptableを表計算側のシートにドラッグするとそのシートにテーブルデータが表示されます(日本語が文字化けしてます)。
- StarSuite 7 日本語版(評価版)
StarSuite 7 日本語版の正式出荷は2003年10月31日のようですがその前からSunのサイトから日本語評価版がダウンロードできるようになっています(評価期間は90日間)。
- StarSuiteの表計算起動。
- StarSuite 7ではStarSuite 7内蔵の「MySQL Connector/J3」JDBCドライバでMySQL接続ができるようになっています。
このため[ツール]-[オプション]でのStarSuiteの「セキュリティ」画面で「MySQL Connector/J3」JDBCドライバに対するClassPathを指定する必要はありません。
- 表計算の[ツール]-[データソース]で<新しいデータソース>ボタンを押します。
- 「全般」タブで下記を設定します。
名前:MySQL_test
データベースの種類:MySQLを選択(StarSuite 7で新設された選択肢です)
- 「MySQL」タブで下記を設定します(設定画面)。
接続タイプ:<コネクタ/J3を使用>を有効にします。
MySQL JDBC ドライバクラス:com.mysql.jdbc.Driver(プリセットされた値ですので変更不要です)
データソースURL:sdbc:mysql:jdbc:pc_u10:3306/testを指定します。
※ホスト名の前に//は付けません。
ユーザ名:mysql
<パスワードが必要>:on
- <適用>ボタンで設定を有効にします。
- 表計算の[表示]-[データソース]を実行するとStarSuiteに登録したデータソースMySQL_testが表示されます。
MySQL_testのテーブルをダブルクリックするとユーザ名とパスワードの入力画面(ログイン画面)が出ます。
認証が完了するとMySQLデータソース内のテーブル一覧が表示され、その中のtest.aptableテーブルをダブルクリックするとテーブル内容が右側に表示されます(日本語の文字化けは発生しません)。
またMySQLデータソース中のtest.aptableを表計算側のシートにドラッグするとそのシートにテーブルデータが表示されます(下記画面参照:この場合も日本語の文字化けは発生しません)。
- StarSuite 7新機能のFlashサンプル
MySQLとは直接関係ありませんが、StarSuite 7ではDraw/Impressで作成したものをFlashファイルとしてエクスポートする機能が追加されました。
Windows版StarSuite 7のImpressでエクスポートしたFlashファイルのサンプルはこちら(94KB)です(スライドをクリックすれば次のスライドに変わるだけの単純なサンプルです)
14.Mac OS Xからのアクセス
Mac OS XからのMySQLアクセスについてはこちらで少し紹介しています(REALbasicやFileMaker Proからのアクセス等)。