DCL (Data Control Language)
-
DDL:数据库定义语言,建库,建表
-
DML:数据库操纵语言,增删改
-
DQL:数据库查询语言,select....
-
DCL:数据库控制语言,用户控制....
我们现在默认使用的都是root用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
查看用户
MySQL的所有用户都在mysql数据库中的user表中存储
select * from mysql.user;
创建用户
语法
create user '用户名'@'主机名' identified by '密码';
Tips:用户名、主机名和密码都应该加上单引号
关键字说明
关键字 | 说明 |
---|---|
'用户名' | 将创建的用户名 |
'主机名' | 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符% |
'密码' | 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器 |
具体操作
MySQL的所有用户都在mysql数据库中的user表中存储:
select * from mysql.user;
案例: 创建zhangsan用户,只能在localhost这个服务器登录mysql服务器,密码为123456
create user 'zhangsan'@'localhost' identified by '123456';
flush privileges;
案例:创建lisi用户可以在任何电脑上登录mysql服务器,密码为admin
create user 'lisi'@'%' identified by 'admin';
flush privileges;
修改密码
修改密码
语法:
mysqladmin -uroot -p password 新密码
Tips:
- 1)mysqladmin是MySQL服务器提供的cmd命令,和mysql命令一样需要在cmd窗口执行;
- 2)-p后面有个空格,输入password,然后后面输入新密码
【案例1】:
修改root的密码为123:
mysqladmin -uzhangsan -p password 123;
使用新密码登录MySQL服务器:
mysql -uzhangsan -p123
破解密码
在mysql/bin文件夹下可执行文件,不用登录,但要指定管理员的密码
mysqladmin -uroot -p password 新密码
由于上面更改密码方式需要原密码,原密码错误就会导致修改失败,所以我们在忘记密码时可以这样做:
在控制台输入:
mysql --help
往下滚动,查看MySQL的配置文件存放位置:
MySQL服务启动时,会加载如下几个位置的配置文件(权重从上到下):
- 1)C:\WINDOWS\my.ini
- 2)C:\WINDOWS\my.cnf
- 3)C:\my.ini
- 4)C:\my.cnf
- 5)C:\Program Files\MySQL\MySQL Server 5.7\my.ini
- 6)C:\Program Files\MySQL\MySQL Server 5.7\my.cn
- 默认情况下,MySQL的核心配置文件在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini(我们也可以将其复制到上面说的那几个目录)
在[mysqld]组下面添加如下配置:
skip-grant-tables
以管理员身份运行cmd窗口:
重启MySQL服务:
net stop mysql57
net start mysql57
使用MySQL客户端登录MySQL(此时不需要输入密码):
修改root用户密码:
-- 切换到mysql数据库
use mysql;
-- 修改root用户密码
update user set authentication_string=password('123456') where user='root';
-- 刷新权限
fl