ホームページへ戻る

リレーショナルデータベースサーバーには、OracleやマイクロソフトのSQL Server等高価なものが多い中、PostgreSQL と MySQL はフリーのサーバーとして重宝します。ただし、PostgreSQLはLinuxとSolaris用しかなく、Windowsで使えるものはMySQLに限られるようです。

(BorlandInterBaseのバージョン6がOpen Sourceになっていました! ダウンロードはこちら)

MySQLをインストールする 

  1. MySQLをhttp://www.mysql.com/からダウンロードします。(zip形式)
  2. ダウンロードしたファイルを解凍すると、setup.exeを実行し、ウィザードに従ってインストールします。(簡単です)
  3. インストールが完了したら、MySQLのインストールディレクトリ内の「bin\winmysqladmin.exe」を実行します。(これにより、設定ファイルmy.iniが作成されるようです)
  4. MySQLサーバーを実行します。MySQLをインストールしたディレクトリにある \bin\mysqld を実行します。
  5. root (管理者)にパスワードを設定します。(ここでは、「root_s_pwd」というパスワードを設定することにします) mysqladmin.exeの使い方
    C:\mysql\bin > mysqladmin -u root password root_s_pwd
    
  6. MySQLクライアントは色々ありますが、MS-DOS上で手軽に使えるものは \bin\mysql.exe です。とりあえず root (管理者)としてログインするには下記のようにします。
    C:\mysql\bin > mysql -u root      ##←パスワードオプション(-p)を指定せず。
    ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
    
    C:\mysql\bin>mysql -u root -p  ##←パスワードを指定
    Enter password: ********
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9 to server version: 3.23.41-max-debug
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql>
    mysql>

ActivePerlをインストールする

PerlにMySQL用のDBDモジュールを導入する

c:\Perl\ > set HTTP_PROXY=http://myproxy.hoge.co.jp
c:\perl\ > ppm
PPM > install DBI
PPM > install DBD-MySQL

1行目−必要であれば、ProxyサーバーをHTTP_PROXY変数に設定

2行目−PPMプログラム(ActivePerl付属)を実行

3行目−DBIをインストール

4行目−DBD−MySQLをインストール

ユーザーの管理

MySQLをインストールした後に行わなくてはならないことは、ユーザーとセキュリティの設定です。管理者(オールマイティ)は「root」です。

MySQLのユーザー情報は、「mysql」という名のデータベースで管理されます。この「mysql」の中身は、次のような感じです。

C:\mysql\bin > mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.41-max-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql > use mysql    ##←mysqlデータベースを使うことを宣言
Database changed

mysql > show tables;  ##←テーブルの一覧を表示
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv  |
| db       |
| host      |
| tables_priv   |
| user      |  ##←このuserテーブルにユーザー情報が保管されている。
+-----------------+
5 rows in set (0.05 sec)

mysql > select * from user;  ##←userテーブルからすべて表示

+-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| Host   | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
+-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
| localhost | root |     | Y      | Y      | Y      | Y      | Y      | Y     | Y      | Y       | Y      | Y     | Y     | Y        | Y     | Y     |
| %     |   |     | N      | N      | N      | N      | N      | N     | N      | N       | N      | N     | N     | N        | N     | N     |
| localhost |   |     | Y      | Y      | Y      | Y      | Y      | Y     | Y      | Y       | Y      | Y     | Y     | Y        | Y     | Y     |
| %     | root |     | Y      | Y      | Y      | Y      | Y      | Y     | Y      | Y       | Y      | Y     | Y     | Y        | Y     | Y     |
+-----------+------+----------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+
4 rows in set (0.06 sec)


この user テーブルの???_privは、およそ次のような意味です。データベースからを表示するだけなら、「select_priv」のみでOKです。

(MySQL Reference Manual for version 3.23.40.より引用)

Privilege Column Context
select Select_priv tables
insert Insert_priv tables
update Update_priv tables
delete Delete_priv tables
index Index_priv tables
alter Alter_priv tables
create Create_priv databases, tables or indexes
drop Drop_priv databases or tables
grant Grant_priv databases or tables
references References_priv databases or tables
reload Reload_priv server administration
shutdown Shutdown_priv server administration
process Process_priv server administration
file File_priv file access on server

また、この user テーブルの Host と User は次のようにアクセス制限を実現します。「%」はワイルドカードです。

(MySQL Reference Manual for version 3.23.40.より引用)

Host value User value Connections matched by entry
'thomas.loc.gov' 'fred' thomas.loc.gov から接続してくるfred
'thomas.loc.gov' '' thomas.loc.gov から接続してくる全ユーザー
'%' 'fred' 全てのホストから接続してくるfred
'%' '' 全てのホストから接続してくる全ユーザー
'%.loc.gov' 'fred' loc.gov ドメイン内の全てのホストから接続してくるfred
'x.y.%' 'fred' x.y.net, x.y.com,x.y.edu, などから接続してくるfred
'144.155.166.177' 'fred' IP address が 144.155.166.177 のホストから接続してくるfred
'144.155.166.%' 'fred' 144.155.166 class C subnet 内の全てのホストから接続してくるfred
'144.155.166.0/255.255.255.0' 'fred' 上の例と同じ

MySQLにユーザーを追加する


MySQLをコマンドラインで一通り使う


PerlでMySQLを操作する!

Perlは代表的なCGI用スクリプト。これとMySQLを組み合わせたら、Web上でデータベースアプリケーションを作ることが出来るではないか!

ということで、まずPerlでMySQLを操るための基本的な操作を・・・


ホームページに戻る