How to install free softwares in Linux

last update: 29 Sep 2004

home |index |previous |contents

MySQL mini-mini HowTo



2.1 前準備

    2.1.1 DownLoad

    以下のサイトから"mysql-3.22.32.tar.gz"をダウンロードします。
    http://www.softagency.co.jp/MySQL/Downloads/

    2.1.2 user登録

    mysqlを起動、管理するためのユーザを新規にマシンに登録します。 ここでは"mysql"というユーザを登録することにします。

    2.1.3 Install

    インストールはユーザ:mysqlで行ないます。

    適当なディレクトリに"mysql-3.22.32.tar.gz"を展開します。 今回は"/usr/local/src"とします。

      % su mysql
      passwd:*****
      % cd /usr/local/src
      % gzip -cd mysql-3.22.32.tar.gz | tar xvf -

    次にディレクトリ/usr/local/src/mysql-3.22.32へ移動し、 configure,make, make installを行ないます。

      % cd /usr/local/src/mysql-3.22.32
      % ./configure --prefix=/usr/local/mysql
      % make
      % make install

    次に、ディレクトリ/usr/local/src/mysql-3.22.32/scriptへ移動し、 スクリプト"mysql_install_db"を実行します。
      % cd /usr/local/src/mysql-3.22.32/script
      % ./mysql_install_db

    以上で、/usr/local/bin以下にMySQLのサーバとクライアントがインストールされます。

2.2 DBの作成と基本操作
ここではMySQLによるDBの作成と、基本的な操作について説明します。

以下の操作はすべてユーザ:mysqlが行なうものとして説明します。

    2.2.1 DBMSの起動と停止

      2.2.1.1 起動

      mysqlのデーモンは、以下のスクリプトを実行することにより起動することができます。

        % /usr/local/mysql/bin/safe_mysqld &

      2.2.1.2 停止

      MySQLサーバを安全に停止させるには、以下のコマンドを実行します。

        % /usr/local/mysql/bin/mysqladmin shutdown

    2.2.2 インタプリタの起動

    DBシステムにアクセスする際、 通常はクライアント側のインタプリタから行ないます。 ここでmysqlのインタプリタの起動方法を説明します。
    インタプリタは"/usr/local/mysql/bin/mysql"です。 起動時には二つのオプションを指定して下さい。

    以下に例を示します。

      % /usr/local/mysql/bin/mysql -h localhost -u root
      mysql >

      2.2.2.1 接続するDBを明示的に指定する方法

      上記の例ではインタプリタを起動するだけでしたが、 起動時に明示的にDBを指定することもできます。
      例えば"testDB"というDBに接続する際には以下のコマンドを実行します。

        % /usr/local/mysql/bin/mysql -h localhost -u root testDB
        mysql>

    2.2.3 DBの作成

    インタプリタを起動した状態で、DBを一つ作成してみます。
    ここでは"testDB"というDBを作成します。
      % /usr/local/mysql/bin/mysql -h localhost -u root
      mysql > create database testDB;

    2.2.4 インタプリタ内でのDBへの接続

    インタプリタ起動時に接続するDBを指定しなかった場合、 インタプリタ内でDBに接続しなければなりません。 DBへの接続は以下のように行ないます。
      mysql> connect testDB

    2.2.5 テーブルの作成

    "testDB"に簡単なテーブルを作る方法を説明します。
    テーブル名は"test01"でフィールド名と属性は次のとおりです:
    フィールド名 属性 制約 主キー
    id CHAR(12) NOT NULL
    flag CHAR(1) NOT NULL _
    day DATE _ _

    上記のテーブルを作成するにはインタープリタ中で以下のコマンドを実行します。
      mysql > create table test01 (
      => id CHAR(12) not null,
      => flag CHAR(1) not null,
      => day DATE,
      => primary key (id)
      => );

    2.2.6 テーブル操作

    インタプリタ内でのテーブル操作は普通のSQLコマンドで行ないます。 例として"select"文を示します。
      mysql> select * from test01;

    MySQL言語の構文については以下を参照して下さい。
    MySQLマニュアル:言語リファレンス

    2.2.7 コマンドラインからの操作

    MySQLはコマンドラインからも操作できます。

      2.2.7.1 SQL文の直接実行

      "-e"オプションを使ってコマンドラインからSQL文の直接実行することができます。

      "-e"オプション後に実行するSQL文をシングルクオート'で囲み、最後にDB名を指定します。
      例として、DB:testDBのテーブル:test01にデータを挿入してみます。

        % mysql -h localhost -u root -e 'insert into test01 (id, flag) values ('000000000000', '1')' testDB

      2.2.7.2 SQL文のバッチ実行

      SQL文をファイルにまとめ、バッチコマンドとしても実行することができます。

      以下に2つのデータを挿入するSQL文を列記したスクリプト:script.sqlを示します。

      insert into test01 (id, flag) values ('000000000001', '1');
      insert into test01 (id, flag) values ('000000000002', '1');
      

      script.sqlの中身


      このスクリプトをインタプリタにリダイレクトすると、上記スクリプトのSQL文が 実行されます。

        % mysql -h localhost -u root testDB < script.sql

2.3 Tips

    2.3.1 データのIMPORTとバックアップ

      2.3.1.1 データのIMPORT

      ファイルからDBのテーブルへデータを挿入するには "/usr/local/mysql/ibn/mysqlimport"コマンドを使います。

      ここで注意すべきことは、データの書かれたファイル名で、 データを挿入するテーブル名に"txt"をサフィックスとしたものにしなければ なりません。
      例えば、テーブル:test01にデータを挿入する場合には、 "test01.txt"というファイル名にします。

      例として、 DB:testDBのテーブル:test01にデータを挿入する場合を説明します。

      まず、入力するデータを準備します。ファイル名は"test01.txt"です。

      000000000000	1
      000000000001	1
      000000000002	1
      

      test01.txtの内容


      注意: 上記の例では、ファイルの末尾に空行があるように見えますが、 実際は最終行:

      000000000002 1

      の行末に改行コード"\n"があるのみです。


      データ挿入用のファイルが生成できたら、以下のコマンドを実行します。

        % mysqlimport -h localhost -u root testDB test01.txt

      2.3.1.2 バックアップ

      MySQLはDBのバックアップ手段として、 DBのテーブル生成文(create table)と データの挿入文(insert into)を出力します。 つまり、出力(をファイルに保存したもの)を mysqlインタプリタに入力することで、 テーブルの再作成を可能とし、 それを以ってDBのバックアップとするようです。

      注: 一方、cvs形式のテーブルデータ出力はサポートされていないようです。

      mysqldumpコマンドの使い方ですが、一連のオプションの他に"-q"オプションを 指定すべきでしょう。

      :注 "-p"オプションは、クエリを標準出力へ直接出力するためのオプションです。
      デフォルトではクエリはバッファにため込まれるので、多量のデータを有する DBの場合、問題が発生する可能性があります。

      以下のコマンドでDB:testDBのバックアップを行ないます。
        % mysqldump -h localhost -u root -q testDB > testDB.dump

2.4 参考サイト
以下のサイトにソースを始め、さまざまな文献、情報が蓄積されています。
http://www.softagency.co.jp/mysql/


home |index |previous |contents


since 04/Oct/2004