--------------用户----------------
mysql> select user,authentication_string,host from user; #查询mysql数据的用户
(1)创建用户
第一种创建用户方法:
mysql> create user 'wwl' @'localhost' identified by password '123';
#创建用户wwl
第二种创建用户方法:提升权限的方法:
语法:
grant all on 数据库.表 to 用户@主机 identified by 密码
grant all on *.* to ‘test02’@’localhost’ identified by ‘abc123’
mysql> select password('123'); #将字符串123转换成加密形成
*23AE809DDACAF96AF0FD78ED04B6A265E05AA257
mysql> create user 'wwl' @'localhost' identified by password '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257';
#将加密后的字符串直接丢到identified by password中
#创建成功
问:创建的新用户现在在哪?
mysql> show databases;
mysql> use mysql;
mysql> show tables;
mysql> select user,password,host from user;
⑵删除用户
语法:
drop user 'user' @'localhost';
例子:
drop user 'wangwuliu' @' localhost';
mysql> drop user 'wwl' @'localhost';
⑶重命名用户
语法
rename user '要修改的用户名' @'localhost' to '新用户名' @'主机名';
例子:
RENAME USER 'wangwuwu' @' localhost' TO 'wangxiaowu' @'localhost';
给用户设置密码
set password = password('password');#修改当前账号
SET PASSWORD FOR 'user' @'host' = PASSWORD('password');
①以一个用户,如root登录,设置当前用户密码:
SET PASSWORD = PASSWORD('12345678');
mysql> set password = password('123456');
mysql> mysql -u root -p;
②root用户可为其他用户设置密码:
语法:
SET PASSWORD FOR 'wangxiaowu' @'localhost' = PASSWORD('password');
举例:修改密码
mysql> use mysql;
set password for 'user02'@'localhost' = password('123abc');
mysql> set password for 'hehe' @'localhost' = password('123456');
root密码忘记时解决办法
直接修改授权表 5.7版本密码修改
#停止mysqld进程
[root@localhost ~]# systemctrl stop mysqld.service
vim /etc/my.cnf
[mysqld]模式下最后一行插入:skip-grant-tables 修改完成后保存退出。
进入mysql中输入命令
update mysql.user set authentication_string = password('123abc') where user='root';
#修改root密码为123abc
重启mysql系统之前要修改mysql的配置文件,删除之前插入的内容
vim /etc/my.cnf
删除完成后再重启mysql系统
即可使用修改后的密码123abc登陆。
----------使用GRANT语句给用户授予权限----------
grant 权限列表 ON 库名.表名 TO 用户名 @来源地址 [identified by '密码']
*.*:代表所有数据库列表
@来源地址:在哪台IP或者主机上使用这个权限
identified by '密码':设置密码
当授权用户不存在的话,使用grant语句会创建用户。
MySQL权限列表:
ALL:设置除grant option之外的所有权限 #grant option是赋予权限
ALTER:允许使用 alter table #修改 表
CREATE:允许使用create table #创建 表
DELETE:允许使用delete #删除 用于删除表中的行
DROP:允许使用drop table #删除 数据表
INSERT:允许使用insert #用于向表格中插入新的行
UPDATE:允许使用update #用于修改表中的数据
SELECT:允许使用select #用于查询表中的数据
REPLICATION SLAVE:replication slave 从主服务器中读取二进制日志文件
SHOW DATABASES:show databases显示所有数据库
使用SHOW GRANTS语句查看用户权限
show grants for'用户名'@'来源地址'
使用REVOKE语句撤销指定用户的数据库权限
revoke权限列表 on 数据库名.表名 from 用户名@来源地址