zoukankan      html  css  js  c++  java
  • Linux mysql添加用户,删除用户,以及用户权限

    一些主要命令:

    登陆:

    mysql -u username -p                       一般都是:mysql -u root -p         也可以:mysql -uroot -p

    显示全部的数据库:

    show databases;

    使用某一个数据库:

    use databasename;                        注意:一般对于某个数据库的操作,要基于这个数据库操作

    MySQL [(none)]> use test_db
    Database changed
    MySQL [test_db]>操作.......

    显示一个数据库的全部表:

    show tables;

    show可以看到很多东西:

    show create database dbname;     //这个可以看到创建数据库时用到的一些参数;

    show create table tablename;     //这个可以看到创建表时用到的一些参数;

    退出:

    quit;

    删除数据库和数据表:

    mysql>drop database 数据库名;

    mysql>drop table 数据表名;

    用户相关:

    查看所有用户:

    SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

    注意:在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中存储的是Mysql的一些数据,比如用户、权限信息、存储过程等,所以呢,我们可以通过上面的查询语句来显示所有的用户,就像这样:

    +------------------------------------+
    | query                              |
    +------------------------------------+
    | User: 'root'@'127.0.0.1';          |
    | User: 'mysql.session'@'localhost'; |
    | User: 'mysql.sys'@'localhost';     |
    | User: 'root'@'localhost';          |
    +------------------------------------+
    4 rows in set (0.01 sec)

    注意:因为我加了 DISTINCT 所以去除了重复的数据,所以我们可以使用上面的命令显示所有你的Mysql的用户而忽略那些仅仅是主机名不同的用户。

    我的里面只有一个 root 用户,如果你想增加或减少一些列的显示,那么你只需要编辑这条sql语句即可,比如你只需要显示用户的用户名,那么你就可以这样使用SELECT User FROM mysql.user;,就是这样了,是吧,就用这种方法就可以获得所有用户了呢。微笑。

    新建用户:

    CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin'; 

    MySQL [(none)]> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
    Query OK, 0 rows affected (0.01 sec)

    为用户授权:

    格式:

    grant 权限 on 数据库.* to username@登录主机 identified by "password";

    例子:
    我这里只有一个test_db数据库!
    grant all privileges on test_db.* to admin@localhost identified by 'admin';

        MySQL [(none)]> grant all privileges on test_db.* to admin@localhost identified by 'admin';
        Query OK, 0 rows affected, 2 warnings (0.01 sec)

    然后需要运行刷新权限的命令:
    flush privileges;

        MySQL [(none)]> flush privileges;
        Query OK, 0 rows affected (0.00 sec)

    这个时候牵扯到一个问题:如何查看用户权限?来确认我是否已经修改成功了呢?

    MySQL查看用户权限命令的两种方法:

    一:使用MySQL grants

    命令:show grants for username@localhost;

    MySQL [(none)]> show grants for admin@localhost;                                +-----------------------------------------------------------+
    | Grants for admin@localhost                                |
    +-----------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'admin'@'localhost'                 |
    | GRANT ALL PRIVILEGES ON `testDB`.* TO 'admin'@'localhost' |
    +-----------------------------------------------------------+
    2 rows in set (0.00 sec)

    二:直接通过MySQL select查询语句

    注:这里用到的还是上文说的 mysql.user 表

    命令:select * from mysql.user where user='username' and host='localhost(根据自己情况)' G;

    MySQL [(none)]> select * from mysql.user where user='admin' and host='localhost' G;
    *************************** 1. row ***************************
                      Host: localhost
                      User: admin
               Select_priv: N
               Insert_priv: N
               Update_priv: N
               Delete_priv: N
               Create_priv: N
                 Drop_priv: N
               Reload_priv: N
             Shutdown_priv: N
              Process_priv: N
                 File_priv: N
                Grant_priv: N
           References_priv: N
                Index_priv: N
                Alter_priv: N
              Show_db_priv: N
                Super_priv: N
     Create_tmp_table_priv: N
          Lock_tables_priv: N
              Execute_priv: N
           Repl_slave_priv: N
          Repl_client_priv: N
          Create_view_priv: N
            Show_view_priv: N
       Create_routine_priv: N
        Alter_routine_priv: N
          Create_user_priv: N
                Event_priv: N
              Trigger_priv: N
    Create_tablespace_priv: N
                  ssl_type:
                ssl_cipher:
               x509_issuer:
              x509_subject:
             max_questions: 0
               max_updates: 0
           max_connections: 0
      max_user_connections: 0
                    plugin: mysql_native_password
     authentication_string: *4ACFE3202A5FF5CF467898FC58AAB1D615029441
          password_expired: N
     password_last_changed: 2017-12-22 16:35:52
         password_lifetime: NULL
            account_locked: N
    1 row in set (0.00 sec)

    可以看到Select_priv,Insert_priv,Update_priv...等为N表示没有权限,该用户权限一目了然。

    继续咱们的为用户授予权限,现在我们为用户授予部分权限:

    mysql>grant select,insert,update,delete,create,drop on test_db.user to admin@10.163.225.87 identified by ‘123′;

    给来自10.163.225.87的用户admin分配可对数据库test_db的user表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

    mysql>grant all privileges on test_db.* to admin@10.10.10.87 identified by ‘123′;

    给来自10.163.225.87的用户admin分配可对数据库test_db所有表进行所有操作的权限,并设定口令为123。

    mysql>grant all privileges on *.* to admin@10.10.10.87 identified by ‘123′;

    给来自10.163.225.87的用户admin分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123

    mysql>grant all privileges on *.* to admin@localhost identified by ‘123′;

    给本机用户admin分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

    删除用户:

    @>mysql -u root -p

      @>密码

      mysql>DELETE FROM mysql.user WHERE User="admin"

      mysql>flush privileges;

      //删除用户的数据库

      mysql>drop database test_db;


    修改指定用户密码:

      @>mysql -u root -p

      @>密码

      mysql>update mysql.user set password=password('新密码')  where User=”jeecn” and Host="localhost";

      mysql>flush privileges;


     mysql>quit;
    ---------------------
    作者:顾米楠
    来源:CSDN
    原文:https://blog.csdn.net/qq_38350907/article/details/78873414
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    至最近写的微博记录(一)
    对古人“一命二运三风水,四积德五读书”的人生命运总结的理解
    福建省获得央行颁发的非金融机构支付业务许可牌照的公司(至20120801)
    替信息系统运维工作正名
    在信息系统运维开发中,对MVC框架认识上的一种变通
    Elasticsearch 从入门到学会之六(索引API特殊管理)
    Python的Web项目实现 Flask
    python的方法整理
    Shell脚本
    各种测试场景case整理
  • 原文地址:https://www.cnblogs.com/apolloren/p/9980038.html
Copyright © 2011-2022 走看看