http://blog.itpub.net/133735/viewspace-691196/
init_connect 是可以動態在線調整的,這樣就有了一些其他的用處
經過測試init_connect 是用戶登錄到數據庫上之后,在執行第一次查詢之前執行 里面的內容的。
如果init_connect 的內容有語法錯誤,導致執行失敗,會導致用戶無法執行查詢,從mysql 退出。
init_connect 對具有super 權限的用戶是無效的
1.設定字符集:
init_connect='set autocommit=0; set names gbk;'
2.init_connect 來登記用戶的信息:
創建測試表:
mysql> create table t1 ( cur_user varchar(100), n_user varchar(100),in_time timestamp default current_timestamp()); Query OK, 0 rows affected (2.36 sec)
設定 init_connect :
set global init_connect='insert into test.t1 (cur_user,n_user) values (current_user(),user())';
普通用戶登錄: (root 用戶無效)
[root@localhost uu]# mysql -umysql -p mysql> use test; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from t1; +------------+-----------------+---------------------+ | cur_user | n_user | in_time | +------------+-----------------+---------------------+ | @localhost | mysql@localhost | 2016-07-05 00:25:02 | +------------+-----------------+---------------------+ 1 row in set (0.07 sec)
注意: 對於所有的普通級別的用戶,必須全部都要對日志表具有讀寫權限, 否則將導致,沒有權限的用戶無法使用數據庫。
