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.0
Options:
--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-defaults,-n
返回一个空字符串。
- --show,-s
my_print_defaults默认情况下会屏蔽密码。使用此选项以明文形式显示密码。
- --verbose,-v
详细模式。打印有关程序功能的更多信息。
- --version,-V
显示版本信息并退出。