04.MySQL——用户管理

用户管理

用户管理的价值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gAVn4NVf-1689765963103)(C:\Users\11794\AppData\Roaming\Typora\typora-user-images\image-20230719162348005.png)]

用户

用户信息

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数据库提供的权限列表:

在这里插入图片描述

  • 权限列表,多个权限用逗号分开 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);

案例

  // 该函数用来连接 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;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/4820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 获得QTableview所选中的行的某一列数据

1、点击QtableView控件-》右键-》跳到槽-》选择 2、编写槽函数信息 void XXX::on_tableView_CalTable_clicked(const QModelIndex &index) {int rowindex.row();//获得当前行索引int colindex.column();//获得当前列索引QModelIndex index1 CalViewModel->index(row,2)…

Enterprise:通过 App search 摄入数据

App Search 是 Elastic Enterprise Search 的一部分&#xff0c;Elastic Enterprise Search 是由 Elasticsearch 提供支持的内容搜索工具集合。 最初由 App Search 引入的一些功能&#xff08;例如网络爬虫&#xff09;现在可以直接通过企业搜索使用。 将这些功能与其他企业搜…

SpringCloud系列:负载均衡组件-Ribbon

作者平台&#xff1a; | CSDN&#xff1a;blog.csdn.net/qq_41153943 | 掘金&#xff1a;juejin.cn/user/651387… | 知乎&#xff1a;www.zhihu.com/people/1024… | GitHub&#xff1a;github.com/JiangXia-10… 本文一共4529字&#xff0c;预计阅读12分钟 前言 前面几…

idea 有时提示找不到类或者符号,日志报java: 找不到符号的解决

解决一&#xff1a; idea maven编译成功&#xff0c;运行失败提示找不到符号&#xff0c;主要是get和set方法找不到符号&#xff0c;此时就是idea的lombok版本冲突 IDEA版本导致的Lombok失效&#xff0c;需要更新lombok版本到1.18.14及之后版本得到解决 <dependency>&…

科技云报道:数字化转型完成后,制造业如何走向“数智”时代?

科技云报道原创。 随着我国数字化转型行动的深入推进和智能制造工程的大力实施&#xff0c;制造业正朝着“数智”时代迈进&#xff0c;生成式AI被视为推动制造业智能化发展的关键驱动力。 据预测&#xff0c;到2027年&#xff0c;将有30%的制造业采用生成式AI来提升产品研发效…

【C++修炼之路】类和对象(下)—— 完结篇

&#x1f451;作者主页&#xff1a;安 度 因 &#x1f3e0;学习社区&#xff1a;StackFrame &#x1f4d6;专栏链接&#xff1a;C修炼之路 文章目录 一、再谈构造函数1、初始化列表2、explicit 关键字 二、static 成员1、概念2、特性 三、友元1、友元函数2、友元类 四、内部类五…

zabbix监控linux主机、监控windows10主机

目录 一、环境准备 1、关闭防火墙 2、准备三台服务器、添加主机声明 3、修改主机名 4、此篇接着上一篇zabbix监控自己的环境下操作&#xff0c;server&#xff08;192.168.147.135&#xff09;已经配置好 二、源码安装zabbix 1、下载包、安装依赖包、联网同步清华时间 2…

安卓 android:onClick与setOnClickListener区别

先说区别&#xff1a; 两种方式底层一样&#xff0c;只是使用onClick需要注意&#xff1a; 1. 事件处理函数必须是public的。 2. 事件处理函数必须在Activity中定义。 3. 事件处理函数必须有一个View类型的参数。 4. 只能用在API Level 4及以后的版本。 1.onClick方法&#xff…

十分钟让你了解 Linux ABI

getline() 提供了一种更灵活的方法&#xff0c;可以在不破坏系统的情况下将用户数据读入程序。 在 C 语言中读取字符串是一件非常危险的事情。当读取用户输入时&#xff0c;程序员可能会尝试使用 C 标准库中的 gets 函数。它的用法非常简单&#xff1a; char *gets(char *stri…

Kubernetes对象深入学习之三:对象属性

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码)&#xff1a;https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习》系列的第三篇&#xff0c;主要内容是关于对象属性的知识点&#xff0c;关于对象属性&#xff0c;先通过一个具体…

系统架构设计师 9:软件可靠性

一、软件可靠性 软件可靠性是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。 1 软件可靠性的定量描述 1. 规定时间。 使用执行时间最为准确。 执行时间&#xff1a;软件运行过程中&#xff0c;CPU执行程序指令所用的时间总和。 2. 失效概率。 用 F(t) 表示&a…

LeetCode·每日一题·1851. 包含每个查询的最小区间·优先队列(小顶堆)

题目 示例 思路 离线查询&#xff1a; 输入的结果数组queries[]是无序的。如果我们按照输入的queries[]本身的顺序逐个查看&#xff0c;时间复杂度会比较高。 于是&#xff0c;我们将queries[]数组按照数值大小&#xff0c;由小到大逐个查询&#xff0c;这种方法称之为离线查询…

Ceph 服务的运用

目录 一、资源池 pool 管理 1.创建一个 Pool 资源池 2.查看集群 Pool 信息 3.查看资源池副本的数量 4.查看 PG 和 PGP 数量 5.修改 pg_num 和 pgp_num 的数量为 128 6.修改 Pool 副本数量为 2 7.修改默认副本数为 2 8.删除 Pool 资源池 8.1修改配置文件 8.2推送 ceph…

word页码怎么从第二页开始

视频&#xff1a;https://product.pconline.com.cn/itbk/vedio/1810/11904520.html 1/15 本视频由Office2010进行演示&#xff0c;打开Word 2/15 点击“插入” 3/15 点击“页码” 4/15 选择自己需要的页码位置和格式 5/15 点击“页面布局” 6/15 点击“页面设置” 7/15 点击“…

TypeScript 1 - 小记

文章目录 关于 TypeScript 关于 TypeScript TypeScript is a superset of JavaScript that compiles to clean JavaScript output. 官网&#xff1a;https://www.typescriptlang.orggithub : https://github.com/microsoft/TypeScriptplayground : https://www.typescriptlan…

BTP Integration Suite学习笔记 - (Unit3) Developing with SAP Integration Suite

BTP Integration Suite学习笔记 - (Unit1) Developing with SAP Integration Suite BTP Integration Suite学习笔记 - (Unit2) Developing with SAP Integration Suite 带着一个问题去学&#xff1a;明明可以直接访问一个后端系统的OData服务&#xff0c;为什么还要再多绕一道C…

MACOS查找并解决端口占用

当在Mac上遇到端口占用问题时&#xff0c;可以通过以下步骤解决&#xff1a; 打开终端应用程序&#xff08;Terminal&#xff09;。使用以下命令查找占用特定端口的程序&#xff1a;sudo lsof -n -P | grep :<port>将 <port> 替换为要查找的端口号。例如&#xff…

C语言实现通讯录

今天分享一个通讯录的代码&#xff0c;代码可以正常运行&#xff0c;但是可能有一点点缺陷&#xff0c;完成的是我们的通讯录功能 contact.h #pragma once #include<string.h>#include<stdio.h> #include<assert.h> #define MAX 1000 #define NAME_MAX 20 #…

Linux5.16 Ceph集群

文章目录 计算机系统5G云计算第四章 LINUX Ceph集群一、Ceph1.存储基础1&#xff09;单机存储设备2&#xff09;单机存储的问题3&#xff09;商业存储解决方案4&#xff09;分布式存储&#xff08;软件定义的存储 SDS&#xff09;5&#xff09;分布式存储的类型 2.Ceph 简介3.C…

获得servlet相关API,获得请求头和cookie-spring23

后台能够成功打印 如何获得请求头 如何获得cookie 获取浏览器信息 把network下user Agent的值赋给他 这个值可以直接赋给Cookie 就是这个cookie 把cookie的值赋值给一边JasonId&#xff0c; 这里面的Value代表着名字,名字是cookie后面那一块&#xff1a;