MySQL

  • いろいろ紆余曲折あって、2011年12月現在、Oracle社が権利を持っているデータベース。
  • 無料で使用できるエディションあり。

目次

インストール

  • ダウンロードページから、MySQL Community Server 5.5.19(無料)をダウンロードした時の話。
  1. MySQL Community Serverをクリック。
  2. プラットフォームを選ぶ。⇒「Microsoft Windows」
  3. 提供形態を選ぶ。⇒「Windows (x86, 64-bit), MSI Installer」
  4. ここでログインを要求されるが、無視。⇒「No thanks, just take me to the downloads!」をクリック
  5. ミラーサイトの一覧が出てくるので近そうなサイトを選択してダウンロード開始。
  6. ダウンロードしたMSIを実行、インストール。
  7. あまりこだわりが無かったのでフルオプション、推奨設定で進める。
  8. Modify Security Settingで、パスワードを設定。Anonymous Accountは作成しなかった。
  9. コマンドライン型のクライアントソフトも一緒にインストールされているので、管理はそれで行える。

OSの違い

  • OSによってファイル名の大文字小文字の扱いがと異なる。MySQLでもファイル名に準拠する形で、データベース名やテーブル名が認識される。
  • システム変数 lower_case_table_names に 0〜2 の値を設定する。
    • 0 .. 大文字小文字を区別する
    • 1 .. 大文字小文字を区別しない(テーブル名をすべて小文字にして格納)
    • 2 .. 大文字小文字を区別しない(テーブル名をそのまま格納)
  • linuxは標準で0、windowsは1、とのこと。OSの異なるMySQL間で移行する場合は注意が必要だ。
  • 設定は、my.cnf (linux) / my.ini (windows) に下記のように記載する。
    [mysqld]
    lower_case_table_names = 1
  • 変更後はサービスを再起動する。

データベース管理

データベース一覧

  • SHOW DATABASESコマンドを用いる。複数形に注意。
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)

データベース作成

  • CREATE DATABASEコマンドを用いる。
    mysql> CREATE DATABASE sample_db;
    Query OK, 1 row affected (0.00 sec)

データベース削除

  • DROP DATABASEコマンドを用いる。
    mysql> DROP DATABASE sample_db;
    Query OK, 0 rows affected (0.00 sec)

ユーザ作成

  • GRANTコマンドで権限とパスワードを同時に設定する。
    mysql> GRANT SELECT,INSERT,DELETE,UPDATE,CREATE,DROP,FILE,ALTER,INDEX ON *.* to
    sample_user IDENTIFIED BY 'ABC123';
    Query OK, 0 rows affected (0.00 sec)
  • 自身のオプションを継承して、adminというユーザを作成し、パスワード'pass'を設定する。
    mysql> GRANT ALL PRIVILEGES ON *.* TO admin@"192.168.0.%" IDENTIFIED BY 'pass' WITH GRANT OPTION;
    • "192.168.0.%"は、"192.168.0.*"からのログオンを許すという意味。同PC内であれば、"localhost"と書く。
    • "*.*"はアクセスできるテーブルを指す。"データベース名.テーブル名" の形式。
    • "WITH GRANT OPTION"は、GRANT構文の実行権限を付与する意味。
    • "ALL PRIVILEGES"は全ての実行権限という意味、selectのみだったら"SELECT"と書く。
  • 変更事項の即時反映
    mysql> FLUSH PRIVILEGES;

ユーザ一覧

  • ユーザ情報もデータとして保存されているのでSELECT文を使って問い合わせる。
    mysql> SELECT user, host, password FROM MYSQL.USER;
    +-------+-----------+-------------------------------------------+
    | user  | host      | password                                  |
    +-------+-----------+-------------------------------------------+
    | root  | localhost |                                           |
    | root  | 127.0.0.1 |                                           |
    | root  | ::1       |                                           |
    | admin | localhost |                                           |
    +-------+-----------+-------------------------------------------+
    4 rows in set (0.00 sec)
  • パスワードはハッシュ値なので紛失パスワードを知ることは出来ない。
  • ハッシュ値なので同じワードを使えば同じハッシュ値になる。

データベースの使用

  • 使用するデータベースを切り替えるには下記のようにデータベース名を指定してuseコマンドを実行する。
    mysql> use sample_db
    Databse changed
    
  • 使用中のデータベース内のテーブル一覧を参照したいとき。
    mysql> show tables;
    
  • テーブルのフィールドを確認したいとき。
    mysql> desc tablename;
    
  • 区切り記号を変更したいとき。(デフォルトはセミコロン)
    mysql> delimiter $$
    

管理ツール

MySQL Workbench

  • コマンドラインツールでは厳しいものがあるので、MySQL Workbench 5.2.36とやらをインストールしてみた。
  • 公式サイトにあるので、MySQL本体と同じ要領でダウンロード&インストールでOK。
  • SQL DevelopmentとData ModelingとServer Administationの3つのツールで構成されている。
SQL Development
SQLの実行、テーブル作成など
Data Modeling
Server Administation
サーバの稼働状況を確認したり、詳細設定の変更、データのインポート/エクスポートなど

データベース活用

トリガ作成

  • トリガとはテーブルへのレコード追加や削除などを契機にして実行する機能。
  • MySQLではバージョン5.02以降で使用できる。
  • テーブルAの更新に連動してテーブルBに追加、といった処理が実現できる。
  • トリガ作成例
  • 登録したトリガを参照したいとき。
    mysql> show triggers;

リンク

Wikipedia MySQL
http://ja.wikipedia.org/wiki/MySQL
日本MySQLユーザ会
http://www.mysql.gr.jp/
公式
http://www.mysql.com/
公式 ダウンロードページ
http://www.mysql.com/downloads/
公式 エディション比較
http://www-jp.mysql.com/products/

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-11-16 (金) 16:34:57 (2404d)