zoukankan      html  css  js  c++  java
  • 【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;

    链接:



  • 相关阅读:
    第八次作业
    设计一款给爸爸妈妈用的手机
    第五次作业
    第四次作业(项目分析)
    第二次作业(个人项目实践)
    即时通讯软件的发展演变
    C++用法的学习心得
    JavaScript(变量、作用域和内存问题)
    一、Java和JavaScript
    使用Hyper-V创建虚拟机
  • 原文地址:https://www.cnblogs.com/xuancaoyy/p/5814646.html
Copyright © 2011-2022 走看看