Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76153
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 170
  • 用 户 组: 普通用户
  • 注册时间: 2015-08-07 10:00
个人简介

迷糊

文章分类

全部博文(19)

文章存档

2021年(2)

2018年(3)

2016年(2)

2015年(12)

我的朋友

分类: Mysql/postgreSQL

2018-12-20 15:26:42

转载:
   oracle里面可以根据触发器来记录用户的登录次数,登陆IP,登陆时间等信心。在mysql里面有没有这样的方法呢? 同样的登入信息审计功能在mysql里面也是有的。
1.准备工作:    数据库:mysql8.0.11
                         操作系统: window
2.创建日志信息记录数据库和表: 
  create database accesslog;
  CREATE TABLE accesslog.accesslog (`id` int(11) primary key auto_increment, `time` timestamp, `localname` varchar(30), `matchname` varchar(30))
3.在mysql的配置文件下增加init-connect参数
  a.mysql8的配置文件my.ini不在安装目录下,而在*:\ProgramData\MySQL\MySQL Server 8.0下,是一个隐藏文件,需要在隐藏文件设置中打开才能找到。
  b.在my.ini的[mysqld]下设置参数:
    skip-external-locking
    init-connect='insert into accesslog.accesslog(time, localname, matchname) values(now(),user(),current_user());'
    server-id=1
4.重启mysql服务
  net stop mysql
  net start mysql
5.创建具有对数据库accesslog有插入权限的普通用户
     create USER user1@'%' IDENTIFIED by 'user1';
      create USER user2@'%' IDENTIFIED by 'user2';
      grant select on accesslog.*  to  user1@'%';
      grant select,insert  on accesslog.*  to  user2@'%';
      flush PRIVILEGES;
6.用创建用户登录mysql
       a.mysql -uuser1 -puser1登陆成功,执行 select * from accesslog.accesslog 报错 
   ERROR 2013 (HY000): Lost connection to MySQL server during query
   bmysql -uuser2 -puser2登陆成功,执行 select * from accesslog.accesslog 成功

7.查看数据库accesslog的日志记录信息表
   select * from accesslog.accesslog,发现没有记录,查看err文件后报错:
   [Warning] [MY-013130] [Server] Aborted connection 11 to db: 'unconnected' user: 'user2' host: 'localhost' (init_connect command failed; diagnostics area: MY-001064 - You have an error in your SQL syntax; check the manual that corr)

   解决方法:init-connect 参数里面的语法错误,修改正确语法后解决。

  
阅读(2016) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~