MySQL MySQLにまつわるエトセトラ
コマンドラインで打っていていろいろ忘れそうになるのでメモします。
きれいにまとめようとかいう気が残念なくらいありません。
# mysql -u ユーザー名 -p
で、パスワード入れる。
ちなみに
# mysql -u ユーザー名 -p --default-character-set=utf8
とかやると文字が揃って出力されるので少し幸せ
・DATABASE
//DBを作る CREATE DATABASE hogedb; //DBを選択する USE hogedb;
・TABLE確認
SHOW TABLES; //DB内の全テーブルの一覧 SHOW CREATE TABLE hoge; //テーブルの構造を表示 SHOW COLUMNS FROM hoge; //カラムの名前やタイプなどの一覧 ↓こんな感じ +-------------+--------------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------------------+------+-----+---------+----------------+ | id | int(10) | NO | PRI | NULL | auto_increment | +-------------+--------------------------+------+-----+---------+----------------+ SHOW INDEX FROM hoge; //テーブル内のインデックス一覧 +--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+ | advertisings | 0 | PRIMARY | 1 | id | A | 0 | NULL | NULL | | BTREE | | +--------------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
・TABLE 削除関係
TRUNCATE TABLE hoge;
//テーブル内のデータを全削除
・TABLE セレクト関係
SELECT * FROM hoge WHERE date >= '2009-05-05'; //date形式のデータの取得
SELECT * FROM hoge WHERE date > 2009-05-05;
とかやっててとれませんでした。
こうやるのか。ふーん。
・ユーザー権限
GRANT 権限 ON DB名.テーブル名 TO ユーザ名 INDENTIFIED BY 'パスワード';
たとえばmogeさんをhoge_tbに対してidとnameだけSELECTをOKしたければ
GRANT SELECT (id, name), INSERT ON hoge_tb TO moge INDENTIFIED BY 'heslo';
とかできる。もちろん複数も。
GRANT SELECT, INSERT, UPDATE ON hoge_tb TO moge INDENTIFIED BY 'heslo';
無双モードはこれ
GRANT ALL PRIVILEGES ON *.* TO moge@localhost IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
ユーザー作ったらリフレッシュ
FLUSH PRIVILEGES;
作ったユーザー権限を確認
show grants for moge@localhost;
そもそもユーザー一覧が見たい場合
非常に長いので気をつけよう。