• shell练习03 mysql在脚本中的使用


    一. 补充mysql的用户添加以及权限设置知识

    1. 添加新用户

        mysql安装以后,默认是root用户,即相当于linux中的超级用户。如果每个人都这么登陆,很有可能被意外删除数据或者更改密码。因此,需要添加普通用户。

       (1)查看mysql中已经有哪些用户了

                 登陆mysql后,输入如下命令就可以查看:

                 select user,host from mysql.user;

        (2) 添加新用户

                  1)法一:

                      create user zhangsan IDENTIFIED BY 'Zhangsan@912';   这样就创建了用户名为zhangsan,密码为Zhangsan@912的用户啦。

                      登陆:

                      mysql -u zhangsan -p

                  2)法二:(新版本不接受这种)

                       采用insert方法向mysql库中的user表中添加用户:

                        mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));   这种是不成功的,因为新版本的mysql中已经没有                                password字段了,取而代之的是authentication_string。但是修改后仍然不成功,会报错如下:

                        添加用户 insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

                        报以下的错误 ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误

                        mysql5.1以上版本,我是在5.8版本上操作的。

                        错误原因:

                        mysql用户表的中某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。

                        解决方法:

                        正确的添加用户方法:

                        GRANT USAGE ON *.* TO 'lisi'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

                        用户:lisi,密码:123456,这样就添加了一个新的用户,不会出以上的错误了。

                   3) 法三:(推荐)

                       CREATE USER  'user_name'@'host'  IDENTIFIED BY  'password'; 

                       user_name:要创建用户的名字。

                       host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’

                       password:新创建用户的登陆数据库密码,如果没密码可以不写。

                      eg:

                      CREATE USER  ‘user01’@‘localhost’ IDENTIFED BY ‘123456’;          //表示创建的新用户,名为user01,这个新用户密码为123456,只允许本机登陆

                      CREATE USER  'user02'@'%' IDENTIFED BY '123456';//表示新创建的用户,名为user02,这个用户密码为123456,可以从其他电脑远程登陆mysql所在服务器

                      CREATE USER  ‘user03’@‘%’ ;//表示新创建的用户user03,没有密码,可以从其他电脑远程登陆mysql服务器

    2. 授权给用户

       新添加的普通用户没有权限去操作数据,比如,以新用户登陆以后,想要使用查看当前用户命令,却被提示没有权限:

        SELECT command denied to user 'zhangsan'@'localhost' for table 'user'

        note: 授权只能是登陆root以后再给别的user授权。

       命令:GRANT privileges ON  databasename.tablename  TO  ‘username’@‘host’

       privileges:表示要授予什么权力,例如可以有 select , insert ,delete,update等,如果要授予全部权力,则填 ALL

       databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。

      ’username‘@‘host’:表示授权给哪个用户。

      例:

     GRANT  select,insert  ON  zje.zje  TO ‘aaa’@‘%’;         //表示给用户aaa授权,让aaa能给zje库中的zje表 实行 insert 和 select。

     GRANT  ALL  ON  *.*  TO  ‘aaa’@‘%’;//表示给用户aaa授权,让aaa能给所有库所有表实行所有的权力。

    用GRANT  ALL  ON  *.*  TO  ‘aaa’@‘%’ ;再看用户列表,可以发现权限都变成 Y了。

    注意:

    用以上命令授权的用户不能给其他用户授权,如果想这个用户能够给其他用户授权,就要在后面加上   WITH GRANT OPTION

    如: GRANT  ALL  ON   *.*   TO  ’aaa‘@'%'  WITH GRANT OPTION; 

    3. 删除用户

      命令:DROP  USER ‘user_name’@‘host’ 

      eg:

      DROP USER 'user01'@‘%’;//表示删除用户user01;

    4. 修改密码????????/

    参考文献:

    https://blog.csdn.net/u014453898/article/details/55064312

  • 相关阅读:
    ES6---async, await, promise 综合例子
    ES6---Promise应用: async, await
    ES6---Promise 4: 更多案例
    掌握这两个技术点,你可以玩转AppCan前端开发
    AppCan4.0:开发者要做有价值的APP
    以“掌上东航”为例,论混合开发在企业级项目中的实践
    基于AppCan MAS系统,如何轻松实现移动应用数据服务?
    正益移动王国春:布局在是与不是之间
    【TOP10 APP】这些应用成了AppCan千人大会的焦点
    我爱我家:我为什么选择AppCan?
  • 原文地址:https://www.cnblogs.com/Hermioner/p/9402763.html
Copyright © 2020-2023  润新知