2013年9月29日日曜日

Ubuntu 12.04 で MySQL


Ubuntu 12.04 の環境設定

日本語入力

ターミナルから
$ ibus_setup
を実行。入力メソッドをAnthyに設定。

Xterm 設定

プロンプトが長くなって気に入らないので、ユーザー名とカンレントディレクトリのみの表示にした:
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
\hを消し、\wを\Wと大文字にした。

Vim 設定

vi互換モードを解除した:~/.vimrcに以下の一行を記載。
set nocompatible

MySQLの構築 

を参考にさせていただいた。シンプルにまとまっていてうれしいです。
きょうは、時間もないので、MySQLのみインストールし、コンソールからいろいろといじってみる。
$ sudo apt-get install mysql-server
92.2MBとられる。インストールが完了し、rootパスワードを設定。バージョンを確認:
mysql  Ver 14.14 Distrib 5.5.32, for debian-linux-gnu (i686) using readline 6.2
MySQLの再起動
sudo service mysql restart
ルートでログイン
mysql -u root -p
と入力後、ルートのパスワードを入力すると、MySQLが起動する:プロンプトが、
mysql>
に変わる。抜けるときは、exit、または、quit と入力する。

キャラクターセットの確認
mysql> show variables like 'char%';

MySQLを操作する

次のサイトはWindows用だが、MySQLのコマンドや操作に関してはそのまま使えると思われるので、参考にした。

MySQLの使い方

mysqlのコマンドの書式は、
コマンド 引数 ; 
 が基本。コマンドは大文字でも小文字でもよい。また、コマンドの最後はセミコロンが必要で、逆に、セミコロンの前だと改行することが可能。

データベースの作成

CREATE DATABASE [データベース名];

"goods"という名前のデータベースを作成する。



データベースの削除


DROP DATABASE [データベース名];

データベース一覧の表示


SHOW DATABASES;

複数形になることに注意。

スクリーンショット:


データベースへの接続

「接続」というのは、それ以降の操作にいちいちデータベース名を指定しなくてもよいということを意味する。
USE [データベース名];
※ C++ での、using namespace std; と似たようなもの。
※ "unuse"のようなコマンドはない。これもusing namespaceと同じ。単にデータベース名を省略できるというだけなので、閉じる必要はない。接続している場合も、フルネームでテーブルなどを指定してもよい。

キャラクタセット、照合順序を指定してデータベースを生成する

CREATE DATABASE [データベース名] CHARACTER SET [キャラクタセット名] COLLATE [照合順序名];

キャラクタセット名と照合順序名

これらは、次のコマンドで確認できる。
SHOW CHARACTER SET;

ユーザーの作成

CREATE USER [ユーザー名];
もしくは、
CREATE USER [ユーザー名] IDENTIFIED BY '[パスワード]';

複数指定する場合は、カンマで区切る:
CREATE USER
    [ユーザー名] IDENTIFIED BY '[パスワード]',
    [ユーザー名] IDENTIFIED BY '[パスワード]',
    ....
    [ユーザー名] IDENTIFIED BY '[パスワード]';

ユーザー名は、user@hostnameの形式でないといけない。特殊文字を含む場合は、シングルクォーテーションでくくる。パスワードは必ずシングルクォーテーションでくくる。

ユーザーの確認

ユーザー情報は、mysqlデータベースのuserテーブルに登録されているので、SELECT文で次のように参照することができる:
SELECT User,Host FROM mysql.user;

パスワードの設定

SET PASSWORD = PASSWORD('[password]');
現在接続中のユーザーのパスワードを変更する。
SET PASSWORD FOR [user] = PASSWORD('[password]');
指定したユーザーのパスワードを変更する。

ユーザーの変更

RENAME USER [old_user] TO [new_user];

ユーザーの削除

DROP USER [user];
複数ユーザーをカンマで区切って削除することもできる。

ユーザーの権限

権限のレベル
  • グローバル レベル(G)
  • データベース レベル(D)
  • テーブル レベル(T)
  • カラム レベル(C)
  • ルーチン レベル
権限の種類
  • ALL[PRIVILEGES]    (GDT)
  • ALTER    (GDT)
  • ALTER ROUTINE    (GD)
  • CREATE    (GDT)
  • CREATE ROUTINE    (GD)
  • CREATE TEMPORARY TABLES    (GD)
  • CREATE USER    (G)
  • CREATE VIEW    (GDT)
  • DELETE    (GDT)
  • DROP    (GDT)
  • EVENT    (GD)
  • EXECUTE    (G)
  • FILE    (G)
  • INDEX    (GDT)
  • INSERT    (GDTC)
  • LOCK TABLES    (GD)
  • PROCESS    (G)
  • REFERENCES    (GDTC)
  • RELOAD    (G)
  • REPLICATION CLIENT    (G)
  • REPLICATION SLAVE    (G)
  • SELECT    (GDTC)
  • SHOW DATABASES    (G)
  • SHOW VIEW    (GD)
  • SHUTDOWN    (G)
  • SUPER    (G)
  • TRIGGER    (GDT)
  • UPDATE    (GDTC)
  • USAGE    (G)
  • GRANT OPTION    (T)

権限の確認

指定したユーザーに設定されている権限の確認は次のように行う:
SHOW GRANTS FOR [user];

ユーザーの権限設定

指定したユーザーに権限を与えるための構文は以下のようになる:
GRANT priv_type [(column_list)] [, priv_type [(column_list)]], ...
    ON [object_type] {tbl_name | * | *.* | db_name.* }
    TO user [IDENTIFIED BY [PASSWORD] 'password' ]
        [, user [IDENTIFIED BY [PASSWORD] 'password' ]] ...
    [REQUIRE
        NONE |
        [{SSL | X509}]
        [CIPHER 'cipher' [AND]]
        [ISSUER 'issuer' [AND]]
        [SUBJECT 'subject' ]]
    [WITH with option [with option] ... ]

object_type =
    TABLE
    | FUNCTION
    | PROCEDURE

with_option =
        GRANT OPTION
    | MAX_QUERIES_PER_HOUR count
    | MAX_UPDATES_PER_HOUR count
    | MAX_CONNECTIONS_PER_HOUR count
    | MAX_USER_CONNECTIONS count

基本書式は、
GRANT 権限 ON レベル TO ユーザー;
例えば、あるユーザー user に、SHOW DATABASES という種類の権限を与える場合、権限を与える権限をもつユーザー(例えば、root)で接続した後、
grant show databases on *.* to user;
と入力する。

一度与えた権限を削除するには、次の構文を用いる:
REVOKE 権限 ON レベル FROM ユーザー;
先程の例で user に与えた、SHOW DATABASES 権限を削除するには、
revoke show databases on *.* from user;
と入力する。

テーブルの作成
CREATE TABLE db_name.tbl_name (col_name1 data_type1, col_name2 data_type2, ... );
USE文を使ってデータベースに接続している場合は、テーブル名のみでOK.
テーブル名の後ろの()内には、カラムの情報(カラム名 データ型)をカンマ区切りで指定する。テーブル名もカラム名も64バイトまで。

MySQLのデータ型

  • 整数型
    • TINYINT -128から127(符号無しの場合、0から255)
    • SMALLINT -32768から32767(符号無しの場合、0から65535)
    • MEDIUMINT -8388608から8388607(符号無しの場合、0から16777215)
    • INT -2147483648から2147483647(符号無しの場合、0から4294967295)
    • BIGINT -
※ 符号無しは、型の後ろにスペースを空けたあと、UNSIGNEDと記述する。
  • 浮動小数点型
  • 日付型、時刻型
  • CHAR型、VARCHAR型
  • BINARY型、VARBINARY型
  • BLOB型、TEXT型
  • ENUM型
  • SET型

0 件のコメント:

コメントを投稿