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 用户无效)
[[email protected] 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)
注意: 对于所有的普通级别的用户,必须全部都要对日志表具有读写权限, 否则将导致,没有权限的用户无法使用数据库。
时间: 2024-10-12 09:14:56