MySQL笔记用户管理
Posted 萱草yy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL笔记用户管理相关的知识,希望对你有一定的参考价值。
1、账户管理
1.1登录和退出mysql服务器
MySQL –hhostname|hostIP –P port –u username –p[password] databaseName –e “SQL语句”
-h -h主机名或ip
-P -Pport[3306]
-u -u[username]
-p -p[password] 注:之间都没有空格!
-e 执行SQL语句 SQL用双引号括起
可以用此语句配合操作系统定时任务,达到自动处理表数据的功能,如定时将某表中过期的数据删除。
例:
登陆:
mysql -h110.110.110.110 -uroot -p123
注:本地可以直接:mysql –uroot -p
退出:
exit、quit
1.2、创建普通用户
1.2.1用CREATE USER创建无权限用户
语法:CREATE USER user [IDENTIFIED BY [PASSWORD] \'password\'][, user [IDENTIFIED BY [PASSWORD] \'password\']] ...
示例:create user test@localhost identified by \'test\';//创建一个用户名为test,密码为test的用户,该用户没有任何权限
1.2.2用INSERT语句来新建普通用户
INSERT INTO mysql.user(host,user,password,ssl_cipher,x509_issuer,x509_subject)
VALUES (‘localhost’,’test’,PASSWORD(‘test’),’’,’’,’’);
FLUSH PRIVELEGES;
注:mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
1.2.3用GRANT语句来新建普通用户,并授权
1)授权
grant 权限 on 数据库.表 to \'用户名\'@\'登录主机\' identified by \'密码\'
例:
grant select,insert,update,delete on *.* to \'test\'@\'%\';
注:
1)权限:
select ,update,delete,insert(表数据);
create,alert,drop(表结构);
references(外键);
create temporary tables(创建临时表);
index(操作索引);
create view,show view(视图);
create routine,alert routine,execute(存储过程);
all,all privileges(所有权限)
2)数据库:数据库名或者*(所有数据库)
3)表:表名或者*(某数据库下所有表)
4)主机:主机名或者%(任何其他主机)
2)查看权限
show grants;//自己
例:
show grants for dba@localhost;//指定用户指定host
3)权限收回
revoke 权限 on 数据库.表 from \'用户名\'@\'登录主机\'; //注:将to改为from
例:
revoke all on *.* from ‘test’@’%’;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
1.3删除普通用户
1)用DROP USER语句来删除普通用户
DROP USER user [,user]…;
例:
drop user ‘test’@’localhost’;
2)用DELETE语句来删除普通用户
DELETE FROM mysql.user WHERE user=’username’ and host=’hostname’;
FLUSH PRIVILEGES;
例:
delete from mysql.user where user=\'\' and host=\'\';
1.4修该用户密码
1.4.1root用户修改自己的密码
1)使用mysqladmin命令来修改root用户的密码
mysqladmin –u username –p password “new_password”;
2)修改user表
UPDATE mysql.user SET password=PASSWORD(“new_password”) WHERE user=’root’and host=’’;
FLUSH PRIVILEGES;
3)使用SET语句来修改root用户的密码
SET PASSWORD=PASSWORD(“new_password”);
1.4.2root用户修改普通用户密码
1)使用mysqladmin命令
不适用,mysqladmin只能修改root 用户密码
2)修改user表
UPDATE mysql.user SET password=PASSWORD(“new_password”) WHERE user=’’ and host=’’;
FLUSH PRIVILEGES;
3)使用SET语句来修改普通用户的密码
SET PASSWORD FOR ‘user’@’localhost’=PASSWORD(“new_password”);
4)用GRANT语句来修改普通用户的密码
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD]’password [,user[IDENTIFIED BY [PASSWORD]’password’]]...
1.4.3普通用户修改密码
SET PASSWORD=PASSWORD(“new_password”);
1.4.4、root用户密码丢失的解决办法
1)使用—skip-grant-tables选项来启动MySQL服务
>mysqld –skip-grant-tables
#/etc/init.d/mysql start –mysqld –skip-grant-tables
2)登录root,设置新密码
mysql –u root
update mysql.user set password=password(“new_password”) where user=’root’and host=’localhost’;
3)加载权限表
flush privileges;
以上是关于MySQL笔记用户管理的主要内容,如果未能解决你的问题,请参考以下文章