開発中に頻繁に利用するのだが、よく忘れて毎度調べてるのでメモしとく。
●GRANT
■一般的な権限
GRANT SELECT,UPDATE,INSERT,DELETE ON demo_db.* TO user@localhost IDENTIFIED BY 'passwd';
■読取専用権限
GRANT SELECT ON demo_db.* TO selectuser@'10.8.%' IDENTIFIED BY 'passwd';
■レプリケーション用
GRANT REPLICATION SLAVE ON *.* TO repluser@"192.168.0.%" IDENTIFIED BY 'passwd';
■バックアップユーザー用
GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO backupuser@"192.168.0.%" IDENTIFIED BY 'passwd';
■全部
GRANT ALL ON *.* TO alluser@'%' IDENTIFIED BY 'passwd';
●ALTER TABLE
■テーブル名の変更 - RENAME TOキーワード
ALTER TABLE FOO RENAME TO BAR;
■新しい列や制約の追加 - ADD句
ALTER TABLE FOO_TBL ADD FOO_FLG BOOLEAN NOT NULL COMMENT 'フラグ' AFTER BAR;
■既存の列の構造(列名、型、制約)を変更 - CHANGE句
ALTER TABLE FOO_TBL CHANGE FOO_FLG FOO_NM BIGINT NOT NULL COMMENT '数値' AFTER BAR;
■列名を変更せずに既存の列のデータ型・制約を変更 - MODIFY句
ALTER TABLE FOO_TBL MODIFY FOO_NM INT COMMENT '数値' AFTER BAR;
■既存の列の削除 - DROP句
ALTER TABLE FOO_TBL DROP FOO_FLG;
●DBのコピー
■DB1 から DB2にコピーする
mysqldump -u root -ppasswd -n demo_db1 | mysql -u root -ppasswd demo_db2