Windows Vista (ノートパソコン)活用術 フィード・ティッカー

2007年10月19日金曜日

mysql のコマンド

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 件のコメント:

PC VISTAで検索したyoutube video

ホスティングや便利なネットワークサービス