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

 

posted @ 2017-12-15 23:35  dream-子皿  阅读(129)  评论(0编辑  收藏  举报