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を操作する
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;
と入力する。
テーブルの作成
テーブル名の後ろの()内には、カラムの情報(カラム名 データ型)をカンマ区切りで指定する。テーブル名もカラム名も64バイトまで。
MySQLのデータ型
テーブルの作成
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 -
- 浮動小数点型
- 日付型、時刻型
- CHAR型、VARCHAR型
- BINARY型、VARBINARY型
- BLOB型、TEXT型
- ENUM型
- SET型


