MYSQLに関する説明は
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html#doc1_id67
に詳しい。日ごろよく使うコマンドだけ整理してみる。以下***はデータベース名
mysql -u root -p *** (利用開始、rootはユーザー名に変更、データベース名無しでもとりあえず入れる。)
show databases;
use ***; (***はデータベース名)
show tables;
quit; 終了
知っておくと便利なキー操作
[←]か[Ctrl]+[B] カーソルを左に移動する
[→]か[Ctrl]+[F] カーソルを右に移動する
[Ctrl]+[A] カーソルを行頭に移動する
[Ctrl]+[E] カーソルを行末に移動する
[↑]か[Ctrl]+[P] 前のSQL文やコマンドを表示する(ヒストリ)
[↓]か[Ctrl]+[N] 後のSQL文やコマンドを表示する(ヒストリ)
[DEL]か[Ctrl]+[D] 一文字削除
[BS]か[Ctrl]+[H] カーソルの前の一文字を削除
[Tab] 途中まで入力したSQL構文や、フィールド名を補完する
\help
\s コネクト情報
\c 入力キャンセル
ファイルに記述したSQL文の実行する場合
$ mysql [-t -N] データベース名 < ファイル名 SELECT構文で有効なオプション [-t --table]:表形式(区切り線を出力)で結果を表示する。 [-N --skip-column-names]:カラム名を出力しない。 実行結果をファイルに出力する(1) $ mysql データベース名 > ファイル名select * from table1;
入力待ちになるので、SQL文を入力する
(SQL文の最後は「;」で終わらせる)
\q (処理を終了する)
実行結果をファイルに出力 (2)
mysql [-t -N] データベース名 > ファイル名
ファイルに記述したSQL文の実行結果をファイルに出力する
$ mysql [-t -N] データベース名 < (SQL)ファイル名 > (OUT)ファイル名*オプション
ファイルに記述したSQL文の実行結果をファイルに追加出力する
$ mysql [-t -N] データベース名 < (SQL)ファイル名 >> (OUT)ファイル名*オプション
ファイルに記述したSQL文を実行するを参照してください。
(1)$ cat ファイル名 mysql [-t -N]
(2)$ echo "select * from テーブル名" mysql [-t -N] データベース名
コマンドの実行結果をmysqlコマンドに渡して実行し、ファイルに出力する
(1)$ cat (SQL)ファイル名 mysql [-t -N] データベース名 > (OUT)ファイル名
(2)$ echo "select * from テーブル名" mysql [-t -N] データベース名 > (OUT)ファイル名
ユーザー管理
* 下記構文を実行した後に、FLUSH PRIVILEGES構文を必ず実行します。
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON データベース名.* TO ユーザ名@localhost IDENTIFIED BY 'パスワード';
mysql> FLUSH PRIVILEGES;
mysql> GRANT all privileges ON *.* TO sekkei@"%" IDENTIFIED BY 'sekkei' WITH GRANT OPTION;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO sekkei@"%" IDENTIFIED BY 'sekkei' WITH GRANT OPTION;
select * from mysql.user \G
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {テーブル名 * *.* データベース名.*}
TO ユーザ名 [IDENTIFIED BY 'パスワード']
[, ユーザ名 [IDENTIFIED BY 'パスワード'] ...]
[REQUIRE
[{SSL X509}]
[CIPHER cipher [AND]]
[ISSUER issuer [AND]]
[SUBJECT subject]
]
[WITH GRANT OPTION]
GRANT構文のpriv_typeには、次のようなものがあります。
GRANT構文のpriv_typeについて ALL PRIVILEGES(*):すべての権限。(ALLと同義語)
ALTER(*):ALTER TABLE構文が実行できる権限。
CREATE(*):データベースとテーブルの作成が行える権限。
DROP(*):データベースとテーブルの削除が行える権限。
FILE(*):LOAD DATA構文とSELECT ~ INTO OUTFILE構文を実行できる権限。
PROCESS(*):mysqladminコマンドのprocesslistとkill命令を実行できる権限。
RELOAD(*):mysqladminコマンドのreload、refresh、flush-privileges、
flush-hosts、flush-logs、flush-tables命令を実行できる権限。
SHUTDOWN(*):mysqladminコマンドのshutdown命令を実行できる権限。
DELETE:DELETE構文を実行できる権限。
INSERT:INSERT構文を実行できる権限。
SELECT:SELECT構文を実行できる権限。
UPDATE:UPDATE構文を実行できる権限。
INDEX:インデックスの作成と削除が行える権限。
REFERENCES:テーブルのリファレンスが参照できる権限。
USAGE:すべての権限がない。("no privileges"と同義)
(*):通常のデータ操作以上の権限を与えるので、十分な検討が必要です。
ユーザ名についてユーザ名には、ユーザとホストを指定します。
■書式:
ユーザ@ホスト名
ユーザ:登録するユーザ
ホスト:登録するユーザは、どのホストからMySQLサーバにアクセスするのか
(localhost ホスト名(IPアドレス) "%"(ワイルドカード))
■例:
ユーザ名
or ユーザ名@localhost
or ユーザ名@IPアドレス
or ユーザ名@"%"
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {テーブル名 * *.* データベース名.*}
FROM ユーザ名 [, ユーザ名 ...]
常のデータ操作が行えるユーザを登録するmysql> GRANT SELECT,INSERT,UPDATE,DELETE
-> ON データベース名.*
-> TO ユーザ名@localhost
-> IDENTIFIED BY 'パスワード';
mysql> FLUSH PRIVILEGES;
mysql> CREATE DATABASE データベース名
mysql> DROP DATABASE データベース名
0 件のコメント:
コメントを投稿