zoukankan      html  css  js  c++  java
  • 数据库上手避坑之--赋予非root用户操作数据库的所有权限

    mariadb数据库中终于建了一个普通账号gsc,密码是个秘密,反正我知道。登陆mysql账号进行建表,报了个错误,CREATE command denied to user 'gsc'@'localhost' for table 'stu_info,没有权限建表;

    数据库中普通用户权限设置的问题,无法进行创建表。只需给对应账户,赋予所有的权限即可:
    1、给用户权限:

      mysql>grant all privileges on student_info.* to gsc; //student_info是数据库,gsc是操纵student_info的用户

    2、刷新系统设置:

      mysql>flush privileges; //刷新系统权限表。

    新开一个终端:

    1、mysql登陆数据库:

      mysql -ugsc -p
      Enter password:

    2、创建数据库并使用数据库:

    MariaDB [(none)]> show databases;        //查看数据库            
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    +--------------------+
    3 rows in set (0.001 sec)
    
    MariaDB [(none)]> create database student_info;  //创建数据库student_info
    Query OK, 1 row affected (0.001 sec)
    
    MariaDB [(none)]> show databases;              
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | student_info       |
    +--------------------+
    4 rows in set (0.001 sec)
    
    MariaDB [(none)]> use student_info;        //使用数据库student_info
    Database changed

     3、在数据库student_info中创建表:

    MariaDB [student_info]> create table stu_info(    //创建表
        ->     stuId int(11),                 //->是sql语句的提示符号,不是输入命令的一个部分
        ->     stuName varchar(40),
        ->     gender varchar(10),
        ->     phone int(11),
        ->     email varchar(40),
        ->     account varchar(40),
        ->     code varchar(40),
        ->     adminId int(1));
    Query OK, 0 rows affected (0.166 sec)
    
    MariaDB [student_info]> show tables;          //查看数据student_info中表
    +------------------------+
    | Tables_in_student_info |
    +------------------------+
    | stu_info               |
    +------------------------+
    1 row in set (0.001 sec)
    
    MariaDB [student_info]> describe stu_info;      //查看表stu_info基本结构
    +---------+-------------+------+-----+---------+-------+
    | Field   | Type        | Null | Key | Default | Extra |
    +---------+-------------+------+-----+---------+-------+
    | stuId   | int(11)     | YES  |     | NULL    |       |
    | stuName | varchar(40) | YES  |     | NULL    |       |
    | gender  | varchar(10) | YES  |     | NULL    |       |
    | phone   | int(11)     | YES  |     | NULL    |       |
    | email   | varchar(40) | YES  |     | NULL    |       |
    | account | varchar(40) | YES  |     | NULL    |       |
    | code    | varchar(40) | YES  |     | NULL    |       |
    | adminId | int(1)      | YES  |     | NULL    |       |
    +---------+-------------+------+-----+---------+-------+
    8 rows in set (0.002 sec)
    
    MariaDB [student_info]> show create table stu_info;  //查看表stu_info详细结构语句
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | stu_info | CREATE TABLE `stu_info` (
      `stuId` int(11) DEFAULT NULL,
      `stuName` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `gender` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `phone` int(11) DEFAULT NULL,
      `email` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `account` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `code` varchar(40) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `adminId` int(1) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
    +----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.000 sec)

    C语言代码获取stu_info的表结构信息: Makefile

    sqlGetHead:sqlGetHead.c
         gcc -Wall -g -I/usr/include/mariadb -o sqlGetHead sqlGetHead.c -lmysqlclient 

    c代码sqlGetHead.c

     1 //This is c program code!                                                               
     2 /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
     3   * 文档信息: *** :~/WORKM/sqlGetHead.c
     4   * 版权声明: *** :(魎魍魅魑)MIT
     5   * 联络信箱: *** :guochaoxxl@163.com
     6   * 创建时间: *** :2020年11月23日的下午02:37
     7   * 文档用途: *** :数据结构与算法分析-c语言描述
     8   * 作者信息: *** :guochaoxxl(http://cnblogs.com/guochaoxxl)
     9   * 修订时间: *** :2020年第47周 11月23日 星期一 下午02:37 (第328天)
    10   * 文件描述: *** :自行添加
    11  * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
    12 #include <stdio.h>
    13 #include <stdlib.h>
    14 #include <mysql/mysql.h>
    15 #include <string.h>
    16 
    17 #define USER "gsc"
    18 #define PWD "******"
    19 #define DATABASENAME "student_info"
    20 #define TABLENAME "stu_info"
    21  
    22 int main(int argc, char** argv)
    23 {
    24     MYSQL conn;
    25     MYSQL_RES res; 
    26 
    27     char tableName[30];
    28     char query[1024];
    29     unsigned short numFields;
    30     char column[30][40];
    31 
    32     //1.初始化
    33     mysql_init(&conn);
    34  
    35     //2.连接数据库
    36     if(!mysql_real_connect(&conn, "localhost", USER, PWD,  DATABASENAME, 0, NULL, 0))
    37     {
    38         fprintf(stderr, "Failed to connect to database: Error: %s
    ", mysql_error(&conn)   );
    39         return -1;
    40     }
    41     //3.选择表stu_info
    42     strcpy(tableName, TABLENAME);
    43         sprintf(query, "select * from %s", tableName);
    44     mysql_query(&conn, query);
    45     
    46     //4.取出表stu_info中选择的内容
    47     res = *mysql_store_result(&conn);
    48     printf("%s
    ", &res);
    49     
    50     //5.统计表stu_info字段
    51     numFields = mysql_num_fields(&res);
    52     printf("%d
    ", numFields);
    53     
    54     //6.打印表stu_info字段
    55     for(int i = 0; i < numFields; ++i)
    56     {
    57         strcpy(column[i], mysql_fetch_field(&res)->name);
    58         printf("%s
    ", column[i]);
    59     }   
    60     
    61     return 0;
    62 }

      make结果:

    gcc -Wall -g -I/usr/include/mariadb -o sqlGetHead sqlGetHead.c -lmysqlclient

      执行

    sqlGetHead 
    
    8
    stuId
    stuName
    gender
    phone
    email
    account
    code
    adminId

     代码简单,不再啰嗦

      

  • 相关阅读:
    使用Docker快速搭建PHP开发环境
    docker-compose 使用介绍
    Google广告显示不正确的问题
    Hexo博客写作与图片处理的经验
    Docker-compose 建立ELK集群
    Flink101-快速示例
    Spark学习笔记01-基础
    Java Metrics工具介绍
    跨界
    苹果 icloud 把我 ipad min 所有照片丢失
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/14025565.html
Copyright © 2011-2022 走看看