-日本ではPostgreSQLに比べるとマイナーでも世界では標準。Bugzillaのために入れてみる

#contents

*Install [#o0cd2c84]

**RPMインストール [#p2996a87]

 公式サイトにRPMが置いてあるのでこれが一番楽
 Server,Client programs,Dynamic client librariesをダウンロードする

**ソースコンパイル(複雑なので非推奨) [#r1f80535]

 ./configure
 make 
 make install

**Windows版インストール [#o0545630]

-PostgreSQLと違いずいぶん前からWindowsネイティブで動く。

参考サイト
http://y-kit.jp/saba/xp/mysqlsetup.htm

*Install後の初期設定 [#sf122b71]

**ルートのパスワード設定 [#sc048686]

インストール直後はrootのパスワードが設定されていない。実験用途ならこのままのほうが楽。

 mysqladmin -u root password 'hogehoge'
 mysqladmin -u root [-h miracleceleron] password 'new-password'

*文字コード [#c8b6524f]

PostgreSQL等と違ってテーブルクリエート時にしてできないのだろうか?/etc/my.cnfをいちいち書き換えないと駄目なのか?

-以下のコマンドを打ち込むと現状が見える。

 SHOW VARIABLES LIKE 'character\_set\_%';

-テーブル作成の時に指定する(5.0で確認)

 create database codezine default charset utf8;

*管理ツール [#i83ef508]

Windowsで出来るGUIツールを開発元が配布しているのが心強い。MySQL AdministratorやMySQL Query Browser等がある。

*コマンド集 [#sc19b022]

|インポート|load data infile 'c:/ken_all.csv' into table テーブル名|
|エクスポート|select * from テーブル名 into outfile '絶対パスでファイル名'|
|DB一覧|mysqlshow|
|DB作成|mysqladmin -u root create TEST|
|DB削除|mysqladmin -u root drop TEST|
|DB接続|mysql -u root -p DB_NAME|
|バッチ処理|mysql -u root -p DB_NAME < sql.txt|
|TABLE一覧|SHOW TABLES;|
|プロセスの確認|SHOW processlist|
|DBダンプ|$ mysqldump -u root データベース名 > dump.sql|


*テーブル構造やデータ型 [#x177f3ed]

**Tableの形式 [#v6a964eb]

-InnoDB
--トランザクション対応

-MyISAM
--トランザクション非対応で速度重視。


-INNODB形式でテーブルを作成するサンプル

 CREATE TABLE animals (
             id MEDIUMINT NOT NULL AUTO_INCREMENT,
             name CHAR(30) NOT NULL,
             PRIMARY KEY (id)
             ) engine=InnoDB;

**データ型 [#r35b4386]

-CHAR,VARCHARは4.1以降文字数。それ以前はバイト数なので日本語扱うときは注意
-最大以上のサイズを入れた場合、はみだし分が切り落とされるだけでエラーにはならないので注意。数値型のデータも同様

**順序型 [#w169db1c]

-フィールドにAUTO_INCREMENTをつける。ただしひとつのテーブルに付ひとつまで

*注意点 [#kea134ff]

**データベース名やテーブル名は大文字小文字を区別する。 [#y60b9d30]

これはOSが大文字小文字区別するならば、DBとdbは別のデータベースとして取扱われる。テーブルに付いても同様である。WINDOWSのように区別しないOSの場合はその心配はない


*GUI管理ツール [#d0d01049]

**[[phpMyAdmin:http://www.phpmyadmin.net/home_page/index.php]] [#kea3dc6a]

WEBからDB管理ができてしまうというツール。日本語化されていて、解凍即実行可能。海外ではよく使われているのかphpmyadminへの不正アクセスが多数・・・・

-インストール

+解凍する。


*FAQ [#s3050dca]
 パスワード忘れた
 mysqldの引数に
 --skip-grant-tablesをつける
 しかしこれだと固まりやがる場合があり(超不安定DB)
 mysql> grant all on *.* to root@localhost identified by "パスワード";

 これでパスワード認証を求められる
 mysql -u root -p xoops

 /var/lib/mysql/mysql以下を全部消してinitする

#counter

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS