MySQL

mysql コマンド

More than 3 years have passed since last update.


ユーザーの作成


> GRANT ALL PRIVILEGES ON *.* TO user名@host名 IDENTIFIED BY 'password' WITH GRANT OPTION;


権限付与


グローバルレベル:
GRANT 権限 ON *.* TO user;

データベースレベル:
GRANT 権限 ON db_name.* TO user;

テーブルレベル:
GRANT 権限 ON db_name.table_name TO user;

カラムレベル:
GRANT 権限 (カラム1, カラム2, ...) ON db_name.table_name TO user;

ALL PRIVILEGES 全ての権限を与える

WITH GRANT OPTION 権限の書き換えを許可する

権限を書き換えたら、


> flush privileges;


権限確認


show grants for 'user'@'localhost';

現在接続しているユーザー
show grants;
show grants for current_user();


ユーザーの確認


> SELECT host,user FROM mysql.user;

ユーザーの権限を確認、


> SHOW GRANTS FOR user名;


パスワードの変更


> SET PASSWORD FOR user名@"host名"=password('変更後のパスワード');


ユーザーの削除


> DELETE FROM mysql.user WHERE user='user名';


まとめて確認


mysql> select Host, User, Password from mysql.user;


参考 http://sasuke.main.jp/useri.html#2


バックアップ、リストア

データベース指定バックアップ

# mysqldump -u root -p db_name > dumpfile.sql

データベース指定リストア
# mysql -u user -p db_name < dumpfile.sql

※注意点:データベース指定なのか全体なのか


memo

show grants for 'hogehoge'@'localhost';

set password for 'hogehoge'@'localhost' = password('**');

grant all on (データベース名とか).
to 'hogehoge'@'localhost';

show databases;

USE (データベースの名前);

show tables;

SELECT User, Host FROM mysql.user;

drop user 'user'@'localhost';