zoukankan      html  css  js  c++  java
  • day43 mysql 基本管理,[破解密码以及用户权限设置]以及慢日志查询配置

    配置文件:详细步骤,

    1,找到mysql的安装包,然后打开后会看到一个my.ini命名的程序,把它拖拽到notepad++里面来打开,(应该是其他文本形式也可以打开,可以试一下),直接拖拽即可打开该文件,然后会看到很多加了注释的代码,如图所示:

    我们可以把注释都删掉,从第一行开始一直到上图所示的client关键字前面的内容都可以删掉了,然后开始增加代码,

    2,找到红色标识的mysql关键字,在该段代码里添加上你的mysql用户名和登录密码,就是[user='root',password='123']这句话,要换行写入

    然后保存文件,一定要记得保存否则不会生效的.

    然后我们回到cmd的小黑框里面来,直接输入[mysql]即可直接登录,不需要跟之前一样需要输入mysql  -uroot -p123,这样就会方便很多,

    {需要补充的是,我们把用户名如果添加到client保存也会有同样的效果,我试过,在client里面保存了一份用户信息,然后在mysql里面也保存了一份,然后在mysql里面保存的信息是不存在的(即是假的信息),然后在cmd里面直接输入mysql,会报错,报错内容是'error 1045(28000):access denied for user'top'@localhost'(using password:yes)   =========== 这句话的意思就是:没有该用户.我们在client里面和mysql里面都写入了用户信息,mysql里面写入的是假的用户信息,而在client里面则写入的是正确的,但是系统没有识别我们写在client里面的正确的可以顺利登陆的用户信息,所以我们就直接在mysql里面加入用户信息的代码即可}

    然后我们在cmd里面打开mysql后输入: s 命令,我们可以看到客户端,服务端,文件内容等的编码都是utf8,有的情况是它并不是utf8,那么后期的编码出现问题,在项目中导致文件等无法顺利读取,很抓狂的.

    那么我们就需要掌握设置编码的方法,

    上面提到了三个红色标识的client,mysql,mysqld,我们在这三个代码里面添加一行代码,

    default-character-set=utf8

    然后保存.就可以搞定了.

    破解密码:

    1,打开电脑开始键的图标,在搜索框输入-- services.exe 进入服务窗口;或者鼠标点击桌面下方任务栏右键单击打开''启动任务管理器''---找到'服务'按钮,单击,如图所示:

    然后打开后找到mysql的程序,如图:

    右键单击'停止',然后停掉服务,

    下面这几步的操作都是在cmd里面执行:

    2,然后在cmd里面输入命令mysql --skip--grant--tables  这里是跳过了用户输入的那一段信息,

    3,再输入mysql --uroot -p          这里就是,实现了跳过输入用户信息的

    4,select  user();      这里查询出来用户信息,

    5,update   mysql.user    set   password=password('123')  where user='root';

    6,flush priviages;

    7,tasklist

    8,tasklist |findstr mysql

    9,tskill mycqld

    10,在服务里面去找到mycql然后启动服务器,

    11,输入mycql -uroot -p123    这里的123是自定义设置的,密码.

    12,select  user();      这里查询出来用户信息,就可以得到我们更改后的结果

    破解密码的两种方式:

    #1 关闭mysql
    #2 在cmd中执行:mysqld --skip-grant-tables
    #3 在cmd中执行:mysql
    #4 执行如下sql:
    update mysql.user set authentication_string=password('') where user = 'root';
    flush privileges;
    
    #5 tskill mysqld #或taskkill -f /PID 7832
    #6 重新启动mysql
    
    方式一
    
    
    
    
    #1. 关闭mysql,可以用tskill mysqld将其杀死
    #2. 在解压目录下,新建mysql配置文件my.ini
    #3. my.ini内容,指定
    [mysqld]
    skip-grant-tables
    
    #4.启动mysqld
    #5.在cmd里直接输入mysql登录,然后操作
    update mysql.user set authentication_string=password('') where user='root and host='localhost';
    
    flush privileges;
    
    #6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
    
    方式二
    View Code

    用户权限设置:

    授权表:图解

    user #该表放行的权限,针对:所有数据,所有库下所有表,以及表下的所有字段
    db #该表放行的权限,针对:某一数据库,该数据库下的所有表,以及表下的所有字段
    tables_priv #该表放行的权限。针对:某一张表,以及该表下的所有字段
    columns_priv #该表放行的权限,针对:某一个字段
    
    #按图解释:
    user:放行db1,db2及其包含的所有
    db:放行db1,及其db1包含的所有
    tables_priv:放行db1.table1,及其该表包含的所有
    columns_prive:放行db1.table1.column1,只放行该字段
    #创建用户
    create user 'egon'@'1.1.1.1' identified by '123';
    create user 'egon'@'192.168.1.%' identified by '123';
    create user 'egon'@'%' identified by '123';
    
    
    #授权:对文件夹,对文件,对文件某一字段的权限
    查看帮助:help grant
    常用权限有:select,update,alter,delete
    all可以代表除了grant之外的所有权限
    
    #针对所有库的授权:*.*
    grant select on *.* to 'egon1'@'localhost' identified by '123'; #只在user表中可以查到egon1用户的select权限被设置为Y{我作为管理员给@后面的ip地址授权了egon1这个用户名,以及123这个密码,它可以用这个用户名和密码访问我的所有库以及所有表格,对他们进行查询操作,select就是查询操作,我可以把它替换成update,或者同时授予它多个操作,使用','隔开即可}
    
    #针对某一数据库:db1.*
    grant select on db1.* to 'egon2'@'%' identified by '123'; #只在db表中可以查到egon2用户的select权限被设置为Y
    
    #针对某一个表:db1.t1
    grant select on db1.t1 to 'egon3'@'%' identified by '123';  #只在tables_priv表中可以查到egon3用户的select权限
    
    #针对某一个字段:
    mysql> select * from t3;
    +------+-------+------+
    | id   | name  | age  |
    +------+-------+------+
    |    1 | egon1 |   18 |
    |    2 | egon2 |   19 |
    |    3 | egon3 |   29 |
    +------+-------+------+
    
    grant select (id,name),update (age) on db1.t3 to 'egon4'@'localhost' identified by '123'; 
    #可以在tables_priv和columns_priv中看到相应的权限
    mysql> select * from tables_priv where user='egon4'G
    *************************** 1. row ***************************
           Host: localhost
             Db: db1
           User: egon4
     Table_name: t3
        Grantor: root@localhost
      Timestamp: 0000-00-00 00:00:00
     Table_priv:
    Column_priv: Select,Update
    row in set (0.00 sec)
    
    mysql> select * from columns_priv where user='egon4'G
    *************************** 1. row ***************************
           Host: localhost
             Db: db1
           User: egon4
     Table_name: t3
    Column_name: id
      Timestamp: 0000-00-00 00:00:00
    Column_priv: Select
    *************************** 2. row ***************************
           Host: localhost
             Db: db1
           User: egon4
     Table_name: t3
    Column_name: name
      Timestamp: 0000-00-00 00:00:00
    Column_priv: Select
    *************************** 3. row ***************************
           Host: localhost
             Db: db1
           User: egon4
     Table_name: t3
    Column_name: age
      Timestamp: 0000-00-00 00:00:00
    Column_priv: Update
    rows in set (0.00 sec)
    
    #删除权限
    revoke select on db1.* from 'alex'@'%'; 
    # 我们这里是我作为管理员,我给这个ip地址回收了我授权给他的'alex'用户名的权限.
    
    权限相关操作
    View Code

     删除授权之后需要重启mysql服务,在服务里面去操作:

     

    在配置文件里面加上一条配置即可得到慢日志查询的效果

    slow_query_log=on

    本文转载自egon博客-mysql系列-初始数据库

    cnblog.linhaifeng

  • 相关阅读:
    jQuery
    MySQL的引入,绿色包下载和应用
    jsp引用JSTL核心标签库
    Servlet的引入
    Servlet访问Javabean并传结果给jsp
    Spring MVC 中获取session的几种方法
    面试必问系列——hashmap的默认扩容阈值是大于12还是大于等于12
    面试必问系列——重写equals为什么一定要重写hashcode
    分析spring4和spring5日志中的不同
    mysql 查询参数尾部有空格时被忽略
  • 原文地址:https://www.cnblogs.com/2012-dream/p/8045227.html
Copyright © 2011-2022 走看看