五、性能测试之linux分析命令

linux分析命令

      • 一、服务器基础知识
      • 二、linux文件结构
      • 三、linux文件权限
      • 四、linux命令
        • 1、安装应用
          • fedora家族: 如centos
          • debain家族:如ubuntu
        • 2、获取帮助
          • 第一种:`command --help`
          • 第二种:`man command`
          • 第三种:`info`
        • 3、服务器性能分析基础命令
          • 1、top:实时显示各个系统中的各个进程的资源占用情况
          • 2、ps:获取当前系统的进程状态
          • 3、vmstat:对虚拟内存,进程,cpu活动进行监控
          • 4、mpstat:主要监控cpu相关统计信息
          • 5、pidstat:主要看cpu的上下文切换信息
          • 6、netstat:检测本机各端口的网络连接情况
          • 7、iostat:显示设备,分区和网络文件系统的cpu统计信息和输入输出统计信息
          • 8、dstat:一个用来替换vmstat\iostat等命令的工具
          • 9、sar:主要用作网络相关数据查看

  • 一、服务器基础知识

    • 无图像界面的服务器,一般才会作为服务器
    • 通过客户端 xshell、putty、cmd、finalshell
      • 客户端工具要能连接到linux机器上,机器必须开放ssh服务,这个服务端口22
      • centos系统默认是安装了ssh服务,开放了22端口
      • ubuntu系统 默认没有安装ssh服务,所以,ubuntu这种图像界面系统,有时候不能通过客户端来连接。
      • 你想要连接到一台服务器上:
        • 1、服务器必须启动ssh服务
        • 2、服务器要开放ssh服务的端口
        • 3、你本地与服务器之间网络要能通
          • 检查: telnet server_ip 22
  • 二、linux文件结构

    • linux中,一切都是文件
    • 查看文件结构:
      • 安装查看结构的软件(树形结构展示文件路径): yum -y install tree
      • 查看n级路径:tree -L 1/2/3
      • 查看路径下的某个文件夹下的:tree -L 1 /opt
        在这里插入图片描述
目录存储
/boot核相关文件(内核)
/bin存放系统中可用的命令,比如说cd,mkdir之类的
/etc系统管理所需要的所有配置文件
/usrunix shared resource 用户共享程序文件夹,就像windows系统的program files目录
/optoptional 给主机额外安装的软件目录 相当于windows的d盘
/home用户目录,它下一级文件夹,默认是被系统当作用户名的根路径。在企业中,你们操作服务器,一般会给你们非root权限的账号,那这个账号,肯定会在/home目录下面有一个文件夹,文件夹的名称是你的用户名,你的所有操作权限,都受这个用户的权限控制,所以你默认的操作都是在这个路径下
/sys系统文件,记录内核设备数
/media自动识别的外设
/mnt给用户临时挂载外部文件系统。因为linux所有的都是文件,所以当u盘等设备连接的时候,会把u盘当做文件挂载在这边,挂载的路径一般是这边
/procprocess进程,虚拟文件系统,存储当前内核运行状态的特殊文件 。比如cpuinfo: 记录着系统在启动时,读取的cpu相关信息。meminfo: 记录着系统在启动时,读取的memory相关信息。里面还有很多数字: 都是进程的id和pid。 进入这个文件夹,可以查看这个进程启动时相关信息
/root超级权限者的主目录
/run临时文件,系统启动的信息
/srv服务启动后,需要提取的数据
/var不断扩充的东西,如日志。/var/log/你的程序名称 日志文件
/tmp临时文件
/devdevice,linux的外部设备
  • 三、linux文件权限

    在这里插入图片描述

    • 以时间顺序显示目录及其文件列表: ls -lth

      • 第1个: 目录:d 开头,链接: l开头, 文件: -开头
      • 第2/3/4个:归属用户user权限: r读 (4)w写(2) x执行(1)
        • chmod 777 文件名 授予权限,7表示授予读写执行权限
      • 第5/6/7个:归属用户组group权限
      • 第8/9/10个:其他other用户权限
      • 第12个:归属用户username chown
      • 第13个:归属用户组 groupname chgrp
      • 第14个:大小
      • 第15个:日期时间
      • 最后一个:文件名称
    • 四、linux命令

      • 1、安装应用

        • fedora家族: 如centos
          • 可执行文件 rpm(redhat package manager)包安装
            • 命令:
              • rpm -ivh *.rpm 安装过程中显示正在安装的文件信息及安装进度
              • rpm -e okgname 卸载软件,不用.rpm结尾
              • rpm -Uvh ***.rpm 升级包
          • 安装命令:yum
        • debain家族:如ubuntu
          • 可执行文件 deb
            • 命令:dpkg -i *.deb 安装
            • -r 卸载
          • 安装命令:apt/ apt-get
    • ps:并不是所有工具都有这些帮助
      • 3、服务器性能分析基础命令

        • 1、top:实时显示各个系统中的各个进程的资源占用情况
          • 常用的性能分析工具,能够实时显示各个系统中的各个进程的资源占用情况,也可以查看线程
            在这里插入图片描述
      • 相关字段的解释

        • 接下来我们对每行的数据进行逐步分析:
        • 第一行:top - 11:14:43 up 379 days, 19:01, 1 user, load average: 0.24, 0.23, 0.31
          • top - 11:14:43 :展示当前的系统时间
          • up 379 days, 19:01:表示系统启动了多长时间
          • 1 user:当前系统有几个用户连接进来(可以是同一个用户,比如5个用户都用root权限登录,那这边会展示5个)
          • load average: 0.24, 0.23, 0.31:系统平均负载值
            • 第一个值表示系统过去1分钟的平均负载值
            • 第二个值表示系统过去5分钟的平均负载值
            • 第三个值表示系统过去15分钟的平均负载值。
            • 系统负载值,不等于cpu使用率值,因为系统的负载值,由两部分组成:cpu使用率+io使用率
            • 历史经验,系统负载高低,与cpu数量有一定关系,但并不是绝对
            • io:换入和换出。不止是磁盘的读写,还包括像服务器发起请求,服务器处理完成后,通过网络向外传递,磁盘从内存进入缓存,从内存进入cpu,从cpu进入内存等,比较宽泛
            • cpu使用率高,受以下参数影响:us sy ni hi si…
              • us:user space,用户态使用cpu的时间占比,比如说写了一段代码,代码只做了逻辑的判断,没有做底层的运算。类比测试就相当于熟悉系统,写测试用例这种做测试准备的非核心的工作。(非内核)
              • sy:systcl space,系统态,在cpu内核中进行计算消耗的时间占比。占用时间越高,这个值越大。类比测试,就相当于执行测试,找bug这种核心工作。(内核)
              • ni:nice 优先级切换(进程切换)占cpu百分比
              • hi:hardware interrupt,硬中断占用百分比。比如你和家人视频通话时候一个电话来了,不得不中断。中断会导致时间浪费,也会导致资源占用升高(进程/线程切换)
              • si:software interrupt,软中断占用百分比。就像是你打电话的时候另一个电话来了,然后你将第一个电话保持,然后去接第二个电话(进程/线程切换)
              • id:idolt 空闲cpu百分比
              • wa:wait IO等待占用cpu百分比
              • st:hypervisor管理程序占用百分比
              • 以后,不要说系统负载值大于cpu数量,就一定负载高
            • load average: 0.24, 0.23, 0.31:如何知道我们现在系统的负载情况?
              • 看第一个值是上升还是下降,如果现在负载值在上升,表示还会继续上升。
              • 如果第一个值小于第二个值,表示现在系统负载正在下降,再过一段时间可能会恢复正常
              • 如果第三个值小于第二个值,同上
              • 输入数字1可以看到cpu数量,核数
                在这里插入图片描述
        • 第二行:Tasks: 272 total, 1 running, 205 sleeping, 0 stopped, 66 zombie
          • tasks进程数,Threads:可以按H来切换线程
            • 任务列表中,S列对应
            • S sleep 休眠
            • R running 正在运行
            • T stopped 终止
            • Z zombie 僵尸进程
          • KiB Mem : 32779828 total, 2448616 free, 3810724 used, 26520488 buff/cache
          • KiB Swap: 0 total, 0 free, 0 used. 27860280 avail Mem
          • buff/cache:缓存
            • buffer:缓冲区(磁盘虚拟出来的加快读速度的空间)
            • cache:缓存(cpu,内存的缓存)
          • Swap:交换分区(也是磁盘虚拟出来的,进行内存数据转移的,不进行计算:内存->swap,swap->内存)
          • PID:进程id
          • USER:进程的归属用户
          • PR:优先级的级别
          • NI :优先级的值,值越低优先级越高

          • VIRT:虚拟内存,进程使用的虚拟内存大小,默认是kb(任何一个程序启动都会在内存中占用物理内存和虚拟内存)
          • RES: 物理内存大小,进程使用的物理内存大小,默认是kb
          • SHR:共享内存大小,默认单位是kb

          • 上面3个都是进程的内存相关数据,按小写e可以切换单位
          • S:进程的状态
          • %CPU:进程使用cpu率
          • %MEM:进程使用mem率
          • TIME+ :进程使用cpu的时间
          • COMMAND:进程名称
      • 这里只是展示了部分,按F可以获取更多信息
        在这里插入图片描述

      • 具体使用

      • top后具体的使用如下:
        在这里插入图片描述

        • 1、查看当前系统cpu使用率最高的4个进程 n4 回车键

        • 还原 n0 回车
          在这里插入图片描述

        • 输入m 回车:内存信息
          在这里插入图片描述

        • 输入t 回车(task/cpu stats)cpu的情况
          在这里插入图片描述

        • 改变刷新频率: s或者是d + 回车键
          在这里插入图片描述

        • 查看某个进程下线程资源的使用情况: top H -p pid
          在这里插入图片描述

      • 2、ps:获取当前系统的进程状态
        • ps(process status)获取帮助: man ps
        • 获取当前系统的进程状态
        • ps -ef/-eF/-ely 使用标准语法查看系统上的每个进程
        • ps aux/ax 使用BSD语法查看系统上的每个进程
        • ps -ejH/axms 显示进程树
        • ps -eLf/axms 显示进程信息
        • 区别就是展示的内容不一致在这里插入图片描述
      • 3、vmstat:对虚拟内存,进程,cpu活动进行监控
        • vmstat(yum -y install sysstat)
        • 虚拟内存的缩写,可对虚拟内存,进程,cpu活动进行监控
参数用法说明
-a,–active显示活跃或非活跃的内存
-f,–forks线程从系统启动至今的fork数量(复制了几次)
-m,–stabs显示stab信息
-n,–one-header头信息,仅显示一次
-s,–stats以表格方式显示时间计数器的内存状态
-d,–disk报告磁盘状态
-p,–partition显示指定的硬盘分区状态
-s,–unit输出信息的定位
  • 具体含义的解释
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st1  0      0 2182412      4 26211260    0    0     0    15    0    0  4  1 96  0  01  0      0 2182140      4 26211260    0    0     0     0 1140  705  6  1 94  0  0
参数说明
procsr显示多少进程在等待:如果r列的数量大于cpu核数,说明现在有大量的进程在等待cpu计算,现在可能出现了cpu不够用的情况–cpu成了我们的性能瓶颈,此时可能要去增加cpu数量或者减少运行的进程数。b显示多少进程正在不可中断的休眠:就是一直占用cpu资源,虽然没有在计算,就一直是等待状态。就像是进行接力赛,我边跑边等待前一个人把接力棒传给我。这个数量不能过大,过大说明资源不够用
memoryswad显示多少块被换出磁盘,free显示剩下的空闲块,buff/buffer表示正在被用作缓冲区的块,cache表示正在被用作操作系统的缓存
swap现在交换活动,si:每秒有多少块正在被换入内存,so:每秒有多少块正在被换出到磁盘
io显示了多少块从块设备读取(bi)和写出(bo),通常反映了磁盘I/O
system显示每秒中断(in:interrupt)和上下文切换(cs cpu上下文切换)的数量
cpu显示所有的cpu时间花费在各类操作的百分比,包括执行用户代码(非内核),执行系统代码(内核),空闲以及等待IO
  • 内存不足的表现:
    • free memory急剧减少,回收buffer也无济于事,大量使用交换分区(swpd),页面交换(swap)频繁,读写磁盘数量(io)增多,缺页中断(in)增多,上下文切换(cs)次数增多,等待io的进程数(b)增多,大量cpu时间用于等待io(wa)

    • 举例

      • 每隔1s收集1次数据,共收集10次
        在这里插入图片描述
      • 每隔1s展示磁盘数据的情况
        在这里插入图片描述
      • 以表格方式显示时间计数器的内存状态(左边的数字展示的是数量)
        在这里插入图片描述
        • 4、mpstat:主要监控cpu相关统计信息
          • 实时监控工具,主要监控cpu相关统计信息

          • 需要手动安装sysstat才能使用(这个工具包中带了很性能分析的工具)

          • mpstat 1 10 每秒显示一次监控数据,总共显示10次
            在这里插入图片描述

          • mpstat -P ALL 3 3s获取1次所有的监控数据 (这里还多展示了各个cpu的情况)
            在这里插入图片描述

        • 相关字段解释:

          • %usr:用户态使用cpu的时间占比
          • %nice:nice 优先级切换(进程切换)占cpu百分比
          • %sys:系统态,在cpu内核中进行计算消耗的时间占比
          • %iowait :等待占用cpu百分比
          • %irq:硬中断
          • %soft :软中断
          • %steal :管理者占用资源
          • %guest:显示cpu或cpu运行虚拟机处理器所花费的时间占比
          • %gnice:显示cpu或cpu运行nices客户机所花费的时间占比
          • %idle:idolt 空闲cpu百分比
        • 5、pidstat:主要看cpu的上下文切换信息
          • 监控全部或指定进程的cpu,内存,设备io等资源占用情况,主要看cpu的上下文切换信息。是一个常用的进程性能分析工具,用来实时查看进程的CPU,内存,IO以及上下文切换等指标信息
          • pidstat -u -w 1
            • -u:查看cpu数据
            • -w:看cpu上下文数据 在这里插入图片描述
04:06:01 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
04:06:02 PM   999      1088    2.00    0.00    0.00    2.00     2  opsrv
04:06:02 PM   999     20072    1.00    1.00    0.00    2.00     5  postgres
  • cswch/s (voluntary context switches)自愿上下文切换(在cpu做计算时候需要有资源来进行计算,如果资源给的足够,是可以去做的。做完这件事情后,自愿切换到其他事情上去)
  • nvcswch voluntary context switches)非自愿上下文切换(做这件事情的时候资源不够,或者时间分配不足,到点了需要去做另外的事情,需要进行切换)
  • 中断 VS 上下文切换:
    • 中断: 中断当前正在运行的,去做其他事情

    • 上下文切换: 资源的切换

    • 中断,一定会导致上下文切换,但是上下文切换,不一定会中断。

      • 6、netstat:检测本机各端口的网络连接情况
        • 用于显示与IO/TCP/UDP/CMP协议相关的数据统计,一般用于检测本机各端口的网络连接情况
        • -a 显示所有连线中的socket
        • -n 直接使用ip地址,用数字的方式显示,而不通过域名服务器
        • -p 显示正在使用sokcet的程序识别码和程序名称
        • -e 显示网络相关信息
        • -t 显示tcp传输协议的连线情况
      • 常用命令

        • netstat -anp 可以查看所有进程和进程的服务id
          在这里插入图片描述
        • netstat -anp | grep ‘进程关键词或端口’,通过关键词过滤查找进程
        • netstat -apl
          在这里插入图片描述
      • 7、iostat:显示设备,分区和网络文件系统的cpu统计信息和输入输出统计信息
        • 显示设备,分区和网络文件系统的cpu统计信息和输入输出统计信息
          在这里插入图片描述

        • -c 显示cpu使用率报告

          • 间隔1s,统计10次cpu使用率
            在这里插入图片描述
        • -d 显示设备使用率报告

          • 间隔1s,统计10次磁盘使用率 在这里插入图片描述
        • -k 以每秒千字节显示统计报告

        • -m 以每秒兆字节显示统计报告

        • -x 显示扩展统计信息,对比上个截图,是不是多了很多信息?
          在这里插入图片描述

          • 字段说明
            • iostat -dx 1 10 ------没有带-m,数据单位默认kb
              • rrqm/s 合并的每秒读多少请求
              • wrqm/s 合并的每秒写多少请求
              • r/s 读/每秒
              • w/s 写/每秒
              • rkB/s 读kb/s
              • wkB/s
              • avgrq-sz 平均请求的扇区数/每秒
              • avgqu-sz 等待大的请求数
              • await 等待的时间
              • r_await 读等待的时间
              • w_await 写等待的时间
              • svctm 实际请求的时间
              • %util 至少有一个活跃请求的所占的时间百分比
        • 8、dstat:一个用来替换vmstat\iostat等命令的工具

        在这里插入图片描述

        • 是一个用来替换vmstat\iostat等命令的工具,功能比较全,有彩色界面
        • 安装:yum install dstat -y
        • dstat -lcmdry
        参数用法
        -c显示cpu系统占用情况
        -i显示中断情况
        -m显示内存使用情况
        -p显示进程状态
        -d显示磁盘读写情况
        -l显示系统负载
        -n显示网络情况
        -r显示io运行情况
        • dstat -lcmdrpgny
          • hiq\siq:硬中断/软中断
          • int|csw:中断次数\上下文切换次数
        • 9、sar:主要用作网络相关数据查看

  • 相关参数

    • -d/-b 磁盘驱动相关信息(disk,磁盘,io)
    • -l 中断信息情况
    • -n 网络统计信息(network)
    • -q 系统负载压力统计
    • -r 内存利用率信息
    • -u cpu利用率信息
    • -P ALL cpu调度相关
  • 常用命令

    • sar -u 1 每隔1s统计一次cpu使用情况

    在这里插入图片描述

    • sar -r 1 每隔1s统计一次内存使用情况
    • sar -W 1 每隔1s统计一次交换分区使用情况
    • sar -b 1 每隔1s统计一次IO使用情况
    • sar -n socket 1 socket统计
      • sar -n TCP 1 tcp连接统计
    • sar -w 1 每秒上下文交换信息
    • sar -q 1 队列长度
    • sar -B 1 页交换速率
      • 块:从磁盘中读取数据的最小单位
      • 页:从内存中交换数据的最小单位,页的大小比块要大
        • -B 分页情况

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

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

相关文章

英国选校8.27

目录 IC帝国理工学院 UCL伦敦大学学院 爱丁堡 曼彻斯特 KCL伦敦国王学院 Bristol布里斯托 华威 南安普顿 IC帝国理工学院 UCL伦敦大学学院 爱丁堡 曼彻斯特 KCL伦敦国王学院 24qs专业位置双非con雅思气候备注40 移动&个人通信 24fall不要双非? 24fall新…

C语言基础之——指针(上)

前言:小伙伴们又见面啦!本期内容,博主将展开讲解有关C语言中指针的上半部分基础知识,一起学习起来叭!!! 目录 一.什么是指针 二.指针类型 1.指针的解引用 2.指针-整数 三.野指针 1.野指针…

12. Oracle中case when详解

格式: case expression when condition_01 then result_01 when condition_02 then result_02 ...... when condition_n then result_n else result_default end 表达式expression符合条件condition_01,则返回…

【算法专题突破】双指针 - 快乐数(3)

目录 1. 题目解析 2. 算法原理 3. 代码编写 写在最后: 1. 题目解析 题目链接:202. 快乐数 - 力扣(Leetcode) 这道题的题目也很容易理解, 看一下题目给的示例就能很容易明白, 但是要注意一个点&#…

pycharm 右键运行代码时总是测试模式运行(run pytest)

*# 问题 使用pycharm时,右键运行代码,结果是这样的: 运行_‘pytesr(xxx.py 内)’ 英语界面可能是这样:run_‘pytesr(xxx.py)’我并不想使用测试模式。如何改回正常模式? 解决办法 本着遇到什么问题就搜什么问题的态…

【mindspore学习】环境配置

本次实验搭配的环境是 CUDA 11.6 CUDNN v8.9.4 TensorRT-8.4.1.5 mindspore 2.1.0。 1、配置 Nvidia 显卡驱动 如果原来的主机已经安装了 nvidia 驱动,为避免版本的冲突,建议先清除掉旧的 nvidia驱动 sudo apt-get --purge remove nvidia* sudo apt…

苍穹外卖总结

前言 1、软件开发流程 瀑布模型需求分析//需求规格说明书、产品原型↓ 设计 //UI设计、数据库设计、接口设计↓编码 //项目代码、单元测试↓ 测试 //测试用例、测试报告↓上线运维 //软件环境安装、配置第一阶段:需求分析需求规格说明书、产品原型一般来说…

系统架构设计师-计算机系统基础知识(1)

目录 一、计算机系统概述 1、冯诺依曼计算结构​编辑 二、存储系统 三、操作系统概述 1、特殊的操作系统 四、进程管理 1、进程与线程的概念 2、进程的同步与互斥 3、PV操作 4、死锁与银行家算法 一、计算机系统概述 1、冯诺依曼计算结构 二、存储系统 从上到下依次&#…

记录一个问题~beego中的配置文件autorender

事情的经过是这样的: 在学习beego框架时,遇到了一个问题: tpl模板文件不显示内容; 原因所在: beego配置文件: appname hello httpport 8080 runmode dev world world dataSourceInfo root:955945tcp(localhost:3306)/gmusic?charsetutf8 #自动渲染 这里关闭后就关闭了自…

【PHP面试题81】php-fpm是什么?它和PHP有什么关系

文章目录 🚀一、前言,php-fpm是什么🚀二、php-fpm与PHP之间的关系🚀三、php-fpm解决的问题🔎3.1 进程管理🔎3.2 进程池管理🔎3.3 性能优化🔎3.4 并发处理 🚀四、php-fpm常…

Redis7安装

1. 使用什么系统安装redis 由于企业里面做Redis开发,99%都是Linux版的运用和安装,几乎不会涉及到Windows版,上一步的讲解只是为了知识的完整性,Windows版不作为重点,同学可以下去自己玩,企业实战就认一个版…

LeetCode-406-根据身高重建队列

题目描述: 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造…

探讨uniapp的组件使用的问题

1 view Flex是Flexible Box的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。 当设置display: flex后,继续给view等容器组件设置flex-direction:row或column,就可以在该容器内按行或列排布子组件。uni-app推荐使用flex布…

江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电

长期以来,石油天然气、石油石化、发电和管道输送行业在环保、健康和安全保障方面一直承受着巨大的压力,他们必须确保相关规程在各项作业中得到全面贯彻。 阀门作为流体管道运输中的组成部分,其装配密封度是保证流体运输安全的重要一环&#…

【Midjourney电商与平面设计实战】创作效率提升300%

不得不说,最近智能AI的话题火爆圈内外啦。这不,战火已经从IT行业燃烧到设计行业里了。 刚研究完ChatGPT,现在又出来一个AI作图Midjourney。 其视觉效果令不少网友感叹:“AI已经不逊于人类画师了!” 现如今,在AIGC 热…

尚硅谷宋红康MySQL笔记 10-13

是记录,我不会记录的特别详细 第10章 创建和管理表 标识符命名规则 数据库名、表名不得超过30个字符,变量名限制为29个只能包含 A–Z, a–z, 0–9, _共63个字符数据库名、表名、字段名等对象名中间不要包含空格同一个MySQL软件中,数据库不能…

Android 系统桌面 App —— Launcher 开发(1)

Android 系统桌面 App —— Launcher 开发(1) Launcher简介 Launcher就是Android系统的桌面,俗称“HomeScreen”也就是我们开机后看到的第一个App。launcher其实就是一个app,它的作用是显示和管理手机上其他App。目前市场上有很…

QT基础教程之二 第一个Qt小程序

QT基础教程之二 第一个Qt小程序 按钮的创建 在Qt程序中&#xff0c;最常用的控件之一就是按钮了&#xff0c;首先我们来看下如何创建一个按钮 QPushButton * btn new QPushButton; 头文件 #include <QPushButton>//设置父亲btn->setParent(this);//设置文字btn-&g…

C 连接MySQL8

Linux 安装MySQL 8 请参考文章&#xff1a;Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…