mysql用户管理
第一种修改密码的方法:
mysqladmin -uroot -p password
登录:
mysql -u 用户名 -p 密码 -h 主机名
select user,host,password from mysql.user;
虽然mysql有root ,如果用户民一样,但是主机名不一样,
会认为是不同的用户。
第二种方法
set password=password('root');
第三种方法:
update mysql.user set password=password('root')
where user='root' and host='localhost';
flush privileges;
忘记root密码
修改配置文件/etc/my.cnf 添加skip-grant-tables
执行下面命令
update mysql.user set password=password('root') where user='root' and host='localhost'; flush privileges;
修改配置文件/etc/my.cnf 删除skip-grant-tables
先关闭mysql服务,输入如下命令
mysqld_safe --skip-grant-tables
在另外一个窗口登录 是不需要密码的
登陆以后 可以通过update修改密码。
查看当前系统有多少用户
select user,host,password from mysql.user;
以root用户登录数据库 ,运行以下命令:
create user zhangsan identified by 'zhangsan';
上面的命令创建了用户zhangsan,密码是zhangsan。在mysql.user表里可以查看到新增用户的信息:
创建tom用户并没有指定在哪台机器上登录,即没有指定主机。
create user tom@'localhost';
set password for tom@'localhost'=password('tom')
查看用户权限
show grants for jack \G;
此时 jack用户没有权限,可以使用grant
grant可以设置权限,密码,也可以创建用户
给一个用户设置权限:
grant 权限1,权限2 on 库.表 to 用户名@‘主机名’ identified by 密码;
如果这个用户不存在的话,那么将会创建这个用户。
给这个用户赋予权限1,权限2 设置密码为''
通过 show privileges; 可以查看系统中有哪些权限
如果给某个用户赋予所有权限 可以使用all
grant all on *.* to jack@'%' ;
撤销某些权限
revoke
revoke 权限1,权限2 on 库名.表名 from 用户名@‘主机名’;
revoke drop on aa.* from jack@'%';
查看有哪些用户登录
show processlist;
删除用户
drop user 用户名
drop user jack;
允许root用户从其他机器登录
grant all on *.* to root@'%' identified by 'root';