MySQL学习——程序开发工具

embedded/2024/9/23 17:39:17/

Program Development Utilities(程序开发工具)是一系列辅助程序员在软件开发过程中提高效率和质量的工具。这些工具涵盖了从代码编辑、编译、调试到测试、性能分析等多个方面。

本文介绍一些在开发MySQL程序时可能很有用的实用程序。

在shell脚本中,您可以使用my_print_defaults程序来解析选项文件,并查看给定程序将使用哪些选项。以下示例显示了my_print_defaults在被要求显示[client]和[mysql]组中的选项时可能产生的输出:

$> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash

选项文件处理是在C客户端库中实现的,只需在任何命令行参数之前处理相应组中的所有选项即可。这对于使用多次指定的选项的最后一个实例的程序来说效果很好。如果你有一个C或C++程序,它以这种方式处理多个指定的选项,但不读取选项文件,你只需要添加两行来赋予它这种能力。检查任何标准MySQL客户端的源代码,看看如何做到这一点。

MySQL的其他几个语言接口基于C客户端库,其中一些提供了一种访问选项文件内容的方法。其中包括Perl和Python。

mysql_config——编译客户端的显示选项

mysql_config为您提供了编译mysql客户端并将其连接到mysql的有用信息。它是一个shell脚本,因此仅在Unix和类Unix系统上可用。

pkg-config可以用作mysql_config的替代品,用于获取编译mysql应用程序所需的编译器标志或链接库等信息。有关更多信息,请参阅使用pkg-config构建C API客户端程序。

mysql_config支持以下选项。

  • --cflags

要查找的C编译器标志包括编译libmysqlclient库时使用的文件和关键编译器标志和定义。返回的选项与创建库时使用的特定编译器相关联,可能与您自己的编译器设置冲突。使用--include可获得仅包含include路径的更多可移植选项。

  • --cxxflags

类似于--cflags,但用于C++编译器标志。

  • --include

查找MySQL的编译器选项包括文件。

  • --libs

与MySQL客户端库链接所需的库和选项。

  • --libs_r

与线程安全MySQL客户端库链接所需的库和选项。在MySQL 9.0中,所有客户端库都是线程安全的,因此不需要使用此选项。--libs选项可以在所有情况下使用。

  • --plugindir

配置MySQL时定义的默认插件目录路径名。

  • --port

配置MySQL时定义的默认TCP/IP端口号。

  • --socket

配置MySQL时定义的默认Unix套接字文件。

  • --variable=var_name

显示命名配置变量的值。允许的var_name值是pkgincludedir(头文件目录)、pkglibdir(库目录)和plugindir(插件目录)。

  • --version

MySQL发行版的版本号。

如果你在没有选项的情况下调用mysql_config,它会显示它支持的所有选项及其值的列表:

$> mysql_config
Usage: ./mysql_config [OPTIONS]
Compiler: GNU 10.4.0Options:--cflags         [-I/usr/local/mysql/include/mysql]--cxxflags       [-I/usr/local/mysql/include/mysql]--include        [-I/usr/local/mysql/include/mysql]--libs           [-L/usr/local/mysql/lib/mysql -lmysqlclient -lpthread -ldl  -lssl  -lcrypto -lresolv -lm -lrt]--libs_r         [-L/usr/local/mysql/lib/mysql -lmysqlclient -lpthread -ldl  -lssl  -lcrypto -lresolv -lm -lrt]--plugindir      [/usr/local/mysql/lib/plugin]--socket         [/tmp/mysql.sock]--port           [3306]--version        [8.4.0]--variable=VAR   VAR is one of:pkgincludedir [/usr/local/mysql/include]pkglibdir     [/usr/local/mysql/lib]plugindir     [/usr/local/mysql/lib/plugin]

您可以在命令行中使用mysql_config,使用回溯来包含它为特定选项生成的输出。例如,要编译和链接MySQL客户端程序,请按如下方式使用MySQL_config:

gcc -c `mysql_config --cflags` progname.c
gcc -o progname progname.o `mysql_config --libs`

my_print_defaults--显示选项文件中的选项

my_print_defaults显示选项文件选项组中存在的选项。输出指示读取指定选项组的程序使用哪些选项。例如,mysqlcheck程序读取[mysqlcheck]和[client]选项组。要查看标准选项文件中这些组中存在哪些选项,请按如下方式调用my_print_defaults:

my_print_defaults--显示选项文件中的选项
my_print_defaults显示选项文件选项组中存在的选项。输出指示读取指定选项组的程序使用哪些选项。例如,mysqlcheck程序读取[mysqlcheck]和[client]选项组。要查看标准选项文件中这些组中存在哪些选项,请按如下方式调用my_print_defaults:

输出由选项组成,每行一个,其形式将在命令行上指定。

my_print_defaults支持以下选项。

  • --help,-?

显示帮助消息并退出。

  • --config file=file_name,--default-file=filename,-c file_name

只读给定的选项文件。

  • --debug=debug option,-#debug_options

编写调试日志。典型的debug_options字符串是d:t:o,file_name。默认值为d:t:o,/tmp/my_print_defaults.trace。

  • --default-extra-file=file_name,--extra-file=file_name,-e file_name

在全局选项文件之后读取此选项文件,但(在Unix上)在用户选项文件之前读取。

  • --defaults-group-suffix=suffix, -g suffix

除了命令行上指定的组外,还要读取具有给定后缀的组。

  • --login-name=name,-l name

从.mylogin.cnf登录路径文件中的指定登录路径读取选项。“登录路径”是一个选项组,其中包含指定要连接到哪个MySQL服务器以及要作为哪个帐户进行身份验证的选项。要创建或修改登录路径文件,请使用MySQL_config_editor实用程序。

  • --no-login-paths

跳过登录路径文件中的读取选项。

  • --no-defaults,-n

返回一个空字符串。

  • --show,-s

my_print_defaults默认情况下会屏蔽密码。使用此选项以明文形式显示密码。

  • --verbose,-v

详细模式。打印有关程序功能的更多信息。

  • --version,-V

显示版本信息并退出。


http://www.ppmy.cn/embedded/94091.html

相关文章

如何看待“低代码”开发平台的兴起?

近年来,“低代码”开发平台如雨后春笋般涌现,为企业和开发者提供了以极低的编程门槛快速构建应用程序的能力。这一技术正在悄然改变传统软件开发的格局,引发了IT行业的广泛讨论。低代码平台究竟是提高效率的利器,还是降低编程门槛…

Python 学习路径:从零基础到高级应用

当然可以!学习 Python 是一个循序渐进的过程。下面是一个分阶段的学习流程,适合初学者参考: 第一阶段:基础入门 目标: 理解 Python 基础语法,能够编写简单的程序。 安装 Python: 下载并安装最…

【数据库】函数

*MySQL里提供了大量函数,这里的函数相当于功能模块(封装了一些SQL语句),简化了SQL的使用。(Python里的数据库,java里的封装) //函数分类 单行函数:对单个数据运算,返回一…

【Material-UI】Checkbox 组件中的 Label Placement 设置详解

文章目录 一、Checkbox 组件简介1. 组件概述2. labelPlacement 属性 二、labelPlacement 属性的使用方法三、各标签位置的效果与应用场景1. Top(顶部)2. Start(左侧)3. Bottom(底部)4. End(右侧…

基础算法模板

〇 快速排序 void quick_sort( int q[] , int l , int r) {if(l > r) return; int x q[ l r >> 1 ]; int i l - 1 , j r 1; while(i < j) {do i;while…

实现这个 “真正突破” 竟用了百年 —— 看见病毒,显微镜百年历程

原创 小溪 中国科学院高能物理研究所 撰文 | 小溪 突然袭来的新冠肺炎疫情让人类又一次见识了 “病毒” 的威力。 肉眼看不到的病毒作为一个物种&#xff0c;很可能从地球生命诞生之初就已经存在&#xff0c;而人类从意识到有病毒存在→看到病毒的模样→弄清病毒的内部结构成…

【Python】练习题附带答案

1、使用for循环实现输出9*9乘法表 代码&#xff1a; 2、写代码实现累乘计算器。 示例&#xff1a;用户输入&#xff1a;5*9*87输出答案&#xff1a;3915 代码&#xff1a; 3、写代码实现&#xff0c;循环提示用户输入的内容&#xff08;Q/q终止循环&#xff09;&#xff0c;…

Java Enum类笔记

Java系列文章目录 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述四、解决方案&#xff1a;五、总结&#xff1a;5.1 学习总结&#xff1a; 一、前言 学习Enum类的笔记 二、学习内容&#xff1a; Eunm类的实操 三、问题描述 Eunm枚举的使用 四、解…