MySQL 覚え書き
とりあえず、ttp://hostname/phpmyadmin/ で、root / MySQL管理者パスでDB管理モードで入れる。phpMyAdmin 経由で SQL を発行して管理しよう。
MySQL管理者モード
- root と同格の総合管理者作成
1
2
|
| GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'scott/tiger' WITH GRANT OPTION;
|
- ユーザーの新規作成・パスワード更新
1
2
3
4
|
| GRANT USAGE ON *.* TO username@localhost IDENTIFIED BY 'newpassword';
SET PASSWORD FOR username@localhost = PASSWORD('changepass');
|
- データベースの管理
1
2
3
4
5
6
7
8
|
| SHOW DATABASES;
CREATE DATABASE userdb;
ALTER DATABASE userdb DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
DROP DATABASE userdb;
|
- ユーザーの権利関連 (特定DB管理者モード)
1
2
3
4
5
6
7
8
|
| SHOW GRANTS FOR username@localhost
GRANT ALL PRIVILEGES ON userdb.* TO username@localhost;
GRANT select ON userdb.* TO username2@localhost;
REVOKE update ON userdb.* FROM username@localhost;
|
- ユーザーの権利関連 (最小限)
1
2
3
4
5
|
| GRANT SELECT,INSERT,UPDATE,DELETE
ON userdb.*
TO username@localhost
FLUSH PRIVILEGES;
|
特定DB管理者モード
- 自らのパスワード変更
- ただし、phpMyAdminにはパスワード変更の項目がちゃんと存在してる。
1
|
| SET PASSWORD = PASSWORD('changepassword');
|
- テーブルの一覧チェック、作成から削除まで
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
| SHOW TABLES;
CREATE TABLE tblhoge (id INT, title CHAR(16), dt DATE);
INSERT INTO tblhoge(id,title,dt) VALUES(1,'hogehoge','2007-04-01');
SELECT * FROM tblhoge;
SELECT * FROM tblhoge WHERE id='1';
UPDATE tblhoge SET dt='1997-12-31' WHERE id='1';
DELETE FROM tblhoge WHERE id='1';
DROP TABLE tblhoge;
|
一般ユーザー・Webアプリモード
- Webアプリには基本的に CREATE/DROP は禁止(REVOKE)。明示的には SELECT INSERT UPDATE (許容するなら DELETE もだが、削除フラグで UPDATE の方が好み?) あたりか。