MySQL用户管理
1.创建用户
create user user@'%' identified by 'Lly@163.com';
create创建 user用户(关键字)
user@'%' 用户名(@分隔符,单引号中的参数表示允许访问的主机,%通配符,表示所有主机都可以访问,本机访问写'localhost')
identified by 身份认证(关键字) 'Lly@163.com'用户密码
2.删除用户
drop user user@'%';
验证用户创建或删除是否成功
select user from mysql.user;
mysql库是MySQL自带的数据库,mysql库中的user表存储MySQL用户的相关数据
3.修改用户密码
root修改密码
示例一:用mysqladmin命令修改
mysqladmin -uroot -p'Lly@163.com' password '新密码'
示例二:update修改mysql.user表
update mysql.user set authentication_string=password(‘新密码’) WHERE user=’root’ AND host=’localhost’; / /password()函数用来加密密码
flush privileges; //刷新权限
示例三:
set password=password(’新密码‘);
flush privileges;//刷新权限
忘记root密码,找回密码
修改MySQL启动设置
vim /etc/my.cnf
在/etc/my.cnf中添加 skip-grant-tables
[mysqld]
skip-grant-tables
重启MySQL
systemctl restart mysqld
无密码登录
mysql -uroot
修改密码
update mysql.user set authentication_string=password('Lly@123') where user='root' and host='localhost';
刷新
flush privileges;
修改完注释掉/etc/my.cnf中的skip-grant-tables
4.登录MySQL
mysql -P 3306 -hlocalhost -uroot -p'Liu@163' mysql -e ‘show tables’
-h 指定主机名 【默认为localhost】
-P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
此处mysql为指定登录的数据库
-e 接SQL语句
示例
免登录查询数据库
mysql -uroot -p'Liu@123' -hlocalhost -P 3306 mysql -e 'show tables'
MySQL权限管理
权限级别
1. Global level
所有库,所有表的权限。
2. Database level
某个数据库中的所有表的权限。
3 .Table level
库中的某个表的权限
4. Column level
表中的某个字段,的权限。
授权
grant 权限 on 库名.表名 to 用户名@'客户端主机' identified by '密码' with 参数;
示例:
授予user用户对mysql库中的user表查询和插入数据的权限
grant select,inset on mysql.user to user@'localhost' identified by 'Lly@163';
授予user用户对所有库所有表的所有权限,并且有传递自身权限给其他用户的权力(加上grant option参数,可以向其他用户授权)
grant all on *.* to user@'localhost' identified by 'Lly@163' with grant option;
查看权限
查看自己权限
show grants;
查看其他用户权限
show grants for user@'%';
回收权限
revoke 权限 on 数据库.表 from 用户名@'客户端主机';
示例:
revoke all on *.* from user@'%';