今天公司内測試資料庫被人更改,老闆要查出這個人,糾結了好一會,mysql預設頁不記錄IP位址,是以找不到,在網上找了點資料,也有人跟我有一樣的困惑,他們的解決辦法是init_connect,下面我來寫一下這次事故的解決辦法。
建立測試表:
mysql.sock@test> create table t1 ( cur_user varchar(100), n_user varchar(100),in_time timestamp default current_timestamp()) ;
Query OK, 0 rows affected (0.09 sec)
設定 init_connect :
mysql.sock@(none)> set global init_connect='insert into test.t1 (cur_user,n_user) values (current_user(),user())';
Query OK, 0 rows affected (0.00 sec)
這樣就記錄下所有執行sql語句的機器的IP,配合binlog就可以查找出是哪台機器執行的sql造成的資料丢失,把自己的責任就可以推到别人身上啦,嘻嘻。有super權限的使用者是不記錄的,是以不要把root密碼告訴别人,避免不必要的麻煩。