vagrant で全権限
CREATE USER vagrant; SET PASSWORD FOR vagrant@"%"=PASSWORD('vagrant'); GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'%'; FLUSH PRIVILEGES;
文字コード
show variables like "chara%";
user作成。
CREATE USER [user]; SET PASSWORD FOR [user]@"%"=PASSWORD('[pass]');
パスワード変更。
SET PASSWORD FOR [user]@"%"=PASSWORD('[pass]');
user削除。
DROP USER user;
登録されているuser確認。
use mysql; SELECT user, host FROM user;
rootユーザのアクセス許可hostに127.0.0.1を追加する
use mysql; grant all privileges on *.* to root@"127.0.0.1" identified by 'root_pass' with grant option; FLUSH PRIVILEGES;
権限表示
SHOW GRANTS for 'hoge'@'%';
全ての権限を付ける。
GRANT ALL PRIVILEGES ON `DB名`.テーブル TO 'ユーザ名'@'ホスト名';
SELECT,UPDATE,INSERT,DELETEの権限を付ける。
GRANT SELECT,UPDATE,INSERT,DELETE ON `DB名`.テーブル TO 'ユーザ名'@'ホスト名';
権限の反映
FLUSH PRIVILEGES;
テーブル内のデータ量を調べる
use databaseName; select table_name, engine, table_rows as tbl_rows, avg_row_length as rlen, floor((data_length+index_length)/1024/1024) as allMB, floor((data_length)/1024/1024) as dMB, floor((index_length)/1024/1024) as iMB from information_schema.tables where table_schema=database() order by (data_length+index_length) desc;
テーブルデータを消す
MySQLにて大量のデータのDELETEが重い。
過半数をDELETEするような場合には、必要な物だけを入れた別のテーブル作成するという方法もあります。
1. nodeテーブルの構造(インデックス含む)を別名で複製
CREATE TABLE node_tmp LIKE node;
2. 空のnode_tmpに必要なデータを流し込む
INSERT INTO node_tmp ~~
3. ダウンタイムがないよう、1クエリでテーブルの差し替えを行う
RENAME TABLE node TO node_old, node_tmp TO node;
4. 不要となったテーブルを削除
DROP TABLE node_old
mysql> select ip, count(ip) from iptable WHERE time>=DATE_SUB(CURRENT_DATE(),interval 0 day) group by ip ORDER BY count(ip) DESC limit 5; mysql> select ip, count(ip) from iptable WHERE time>=DATE_SUB(CURRENT_DATE(),interval 1 day) and time<=DATE_SUB(CURRENT_DATE(),interval 0 day) group by ip ORDER BY count(ip) DESC limit 5;
足跡
前日の select count(*) from iptable WHERE time>=DATE_SUB(CURRENT_DATE(),interval 1 day) and time<=DATE_SUB(CURRENT_DATE(),interval 0 day); 今日の select * from iptable WHERE time>=DATE_SUB(CURRENT_DATE(),interval 0 day);