04.MySQL——用户管理

这篇具有很好参考价值的文章主要介绍了04.MySQL——用户管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用户管理

用户管理的价值

04.MySQL——用户管理,MySQL,mysql,数据库,linux,centos

用户

用户信息

MySQL中的用户,都存储在系统数据库mysql的user表中

use mysql;
select host,user,authentication_string from user;
  • host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
  • user: 用户名
  • authentication_string: 用户密码通过password函数加密后的

创建用户

create user '用户名'@'登陆主机/ip' identified by '密码';

删除用户

drop user '用户名'@'主机名'

修改用户密码

set password=password('新的密码');  //自己改自己密码
set password for '用户名'@'主机名'=password('新的密码') //root用户修改指定用户的密码

给用户授权

刚创建的用户没有任何权限,需要给用户授权。

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

MySQL数据库提供的权限列表:

04.MySQL——用户管理,MySQL,mysql,数据库,linux,centos

  • 权限列表,多个权限用逗号分开 all [privileges] 表示赋予该用户在该对象上的所有权限
  • . : 代表本系统中的所有数据库的所有对象
  • 库.* : 表示某个数据库中的所有数据对象
  • identified by可选。如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户
  • 如果发现赋权限后,没有生效,执行如下指令: flush privileges;

回收权限

revoke 权限列表 on.对象名 from '用户名'@'登陆位置'

mysql connect

使用C语言连接mysql,需要使用mysql官网提供的库,在官网上下载合适自己平台的mysql connect库

  • 使用的时候需要引入mysql的头文件
#include <mysql.h>
  • 其中 include 包含所有的方法声明, lib 包含所有的方法实现
  • 通过mysql_get_client_info()函数,来验证引入是否成功

mysql接口介绍

初始化mysql_init()

MYSQL* mysql_init(MYSQL* mysql);

链接数据库

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,
                            const char *user,
                            const char *passwd,
                            const char *db,
                            unsigned int port,
                            const char *unix_socket,
                            unsigned long clientflag);

设置链接的默认字符集是utf8,原始默认是latin1

mysql_set_character_set(myfd, "utf8");  

下发mysql命令

int mysql_query(MYSQL *mysql, const char *q);

读取结果

MYSQL_RES *mysql_store_result(MYSQL *mysql);
  • 该函数malloc了一片内存空间来存储查询过来的数据,所以一定要记的 free(result),不然是肯定会造成内存泄漏的。 执行完mysql_store_result以后,数据都存放在MYSQL_RES 变量中。

获取结果行数

longlong mysql_num_rows(MYSQL_RES *res);

获取结果列数

unsigned int mysql_num_fields(MYSQL_RES *res);

获取列名

MYSQL_FIELD* mysql_fetch_fields(MYSQL_RES *res);

获取结果内容

MYSQL_ROW mysql_fetch_row(MYSQL_RES* result); //按照行读取文件内容,自动更新行数
  • 返回一个MYSQL_ROW变量,MYSQL_ROW其实就是char ** ,可以当成一个二维数组来用。

关闭mysql链接

void mysql_close(MYSQL *sock);

案例文章来源地址https://www.toymoban.com/news/detail-597065.html

  // 该函数用来连接 mysqld 并执行mysql语句
  // 将执行sql语句后的Question内容传到第二个参数vector中
  bool QueryMySql(const std::string &sql, vector<Question> *out)
  {
      // 创建mysql句柄
      MYSQL *my = mysql_init(nullptr);
      // 连接数据库
      if(nullptr == mysql_real_connect(my, host.c_str(), user.c_str(),                                   passwd.c_str(),db.c_str(),port, nullptr, 0))
      { 
          return false; 
      }
      // 设置该链接的编码格式, 要不然会出现乱码问题
      mysql_set_character_set(my, "utf8");
      
      // 执行sql语句
      if(mysql_query(my, sql.c_str())!= 0)
      {
          return false;
      }
      // 提取结果
      MYSQL_RES *res = mysql_store_result(my);
      
      // 分析结果
      int rows = mysql_num_rows(res);     //获得行数量
      int cols = mysql_num_fields(res);   //获得列数量
      Question q;
      //定义Question临时结构体,保存问题信息,插入到vector中
      //导入问题的信息到q中
      for(int i = 0; i < rows; i++)
      {
          MYSQL_ROW row = mysql_fetch_row(res);
          q.id = row[0];  
          q.title = row[1];
          q.star = row[2];
          q.desc = row[3];
          q.header = row[4];
          q.tail = row[5];
          q.cpu_limit = atoi(row[6]);
          q.mem_limit = atoi(row[7]);               
          out->push_back(q);
      }

      // 关闭mysql连接
      mysql_close(my);
      return true;
  }

到了这里,关于04.MySQL——用户管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL:事务、索引、用户管理、备份、数据库设计(三大范式)

    事务 (transaction):要么都成功,要么都失败。 核心 :将一组 SQL 放在一个批次中去执行。 原则 ACID :原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。 原子性 :一个事务中的所有步骤 要么都 成功, 要么都 失败,不能只成功一个步骤。 一致性 :包括

    2023年04月26日
    浏览(81)
  • MySQL数据库——SQL(4)-DCL(管理用户、权限控制)

    目录 管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 示例 权限控制 1.查询权限 2.授予权限 3.撤销权限 示例 DCL总结 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 注意: 主机名可以使用通配符‘%’。 这类S

    2024年02月12日
    浏览(60)
  • 【Mysql数据库从0到1】-入门基础篇--用户与权限管理

    Mysql 用户分为root用户和普通用户,其中root用户是数据库超级管理员,拥有所有权限(创建、删除、修改密码、授权等管理权限),普通用户只拥有被授予的权限。 Mysql数据库的安全性通过账户管理来保障。 1.1 🍃 Mysql服务器登录 🍀 简单使用 🍀 复杂使用 1.2 🍃 用户创建

    2024年02月07日
    浏览(70)
  • linux系统--------------mysql数据库管理

    目录 一、SQL语句 1.1SQL语言分类 1.2查看数据库信息    1.3登录到你想登录的库 1.4查看数据库中的表信息 1.5显示数据表的结构(字段) 1.5.1数据表的结构 1.5.2常用的数据类型: 二、关系型数据库的四种语言 2.1DDL:数据定义语言,用于创建数据库对象,如库、表、索引等 2.1.1库

    2024年03月24日
    浏览(53)
  • linux高级管理——访问MYSQL数据库

    一、认识数据库系统:  MySQL数据库系统也是一个典型的C/S(客户端/服务器)架构的应用,要访问MySQL数据库需要使用专门的客户端软件。在Linux系统中,最简单、易用的MySQL客户端软件是其自带的mysql命令工具。 1.登录到MySQL服务器 经过安装后的初始化过程,MySQL 数据库的默

    2024年02月04日
    浏览(42)
  • Linux高级管理--安装MySQL数据库系统

            MySQL.是一个真正的多线程、多用户的SQL数据库服务,凭借其高性能、高可靠和易于使 用的特性,成为服务器领域中最受欢迎的开源数据库系统。在2008年以前,MySOL项目由MySQL AB公司进行开发,发布和支持,之后历经Sun 公司收购MySOL AB公司,Oracle公司收购Sun公司 的

    2024年02月04日
    浏览(63)
  • MySQL数据库——MySQL GRANT:用户授权

    授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行  GRANT  语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权

    2024年02月06日
    浏览(64)
  • Mysql数据库用户操作

    # Mysql数据库用户操作 ## 1.1创建用户 ```shell create user ‘nz’ identified by ‘123456’ # hzm:用户账号,123456:密码 create user ‘nz’@’%’ identified by ‘123456’ #所有ip都可用账号 create user ‘nz’@’localhost’ identified by ‘123456’ #本地可用账号 create user ‘nz’@’192.168.12.1’ identified

    2024年02月16日
    浏览(58)
  • MySQL数据库——MySQL创建用户(3种方式)

    MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。 在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数

    2024年02月05日
    浏览(47)
  • 【数据库】 mysql用户授权详解

    目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 mysql刚安装时,临时密码会存储在 /var/log/mysqld.log 1,查看临时密码 方法一:直接给出密码   方法二:查到的语句的最后为

    2024年02月11日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包