25.9. MySQL程序开发实用工具
- 25.9.1. msql2mysql:转换mSQL程序以用于MySQL
- 25.9.2. mysql_config:获取编译客户端的编译选项
·msql2mysql
1种shell脚本,用于将mSQL程序转换为MySQL程序。它不能处理所有情况,但能为转换提供良好的开端。
·mysql_config
1种shell脚本,能生成编译MySQL程序时所需的选项值。
25.9.1. msql2mysql:转换mSQL程序以用于MySQL
最初,开发的MySQL C API很类似为mSQL数据库系统开发的API。正因为如此,通过更改C API函数的名称,通常能相对容易地转换mSQL程序,使之用于MySQL。
msql2mysql实用工具用于将mSQL C API函数调用转换为其MySQL对等物。msql2mysql能够转换位于恰当位置输入文件,在执行具体转换之前复制原件。例如,可采用下述方式使用msql2mysql:
shell> cp client-prog.c client-prog.c.orig
shell> msql2mysql client-prog.c
client-prog.c converted
然后,检查client-prog.c,并执行可能需要的后期转换修订。
msql2mysql使用replace实用工具来替换函数名。请参见8.14节,“replace:字符串替换实用工具”。
25.9.2. mysql_config:获取编译客户端的编译选项
mysql_config提供了关于编译MySQL客户端以及将其连接到MySQL的有用信息。
mysql_config支持下述选项:
·--cflags
编译器标志,用于查找包含文件,以及编译libmysqlclient库时所要使用的关键编译器标志和定义。
·--include
编译器选项,用于查找MySQL包含文件(注意,正常情况下应使用“—cflags”而不是该选项)。
·--libmysqld-libs,---embedded
与MySQL嵌入式服务器进行链接所需的库和选项。
·--libs
与MySQL客户端库进行链接所需的库和选项。
·--libs_r
与线程安全MySQL客户端库进行链接所需的库和选项。
·--port
默认的TCP/IP端口号,配置MySQL时定义。
·--socket
默认的Unix套接字文件,配置MySQL时定义。
·--version
版本号以及MySQL分发版的版本。
如果未使用任何选项调用了mysql_config,将显示它所支持的所有选项的列表,以及它们的值:
shell> mysql_config
Usage: /usr/local/mysql/bin/mysql_config [options]
Options:
--cflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro]
--include[-I/usr/local/mysql/include/mysql]
--libs [-L/usr/local/mysql/lib/mysql -lmysqlclient -lz
-lcrypt -lnsl -lm -L/usr/lib -lssl -lcrypto]
--libs_r [-L/usr/local/mysql/lib/mysql -lmysqlclient_r
-lpthread -lz -lcrypt -lnsl -lm -lpthread]
--socket [/tmp/mysql.sock]
--port [3306]
--version[4.0.16]
--libmysqld-libs [-L/usr/local/mysql/lib/mysql -lmysqld -lpthread -lz
-lcrypt -lnsl -lm -lpthread -lrt]
可以在命令行上使用mysql_config,并包含针对特定选项的值。例如,要想编译MySQL客户端程序,可使用mysql_config,如下例所示:
shell> CFG=/usr/local/mysql/bin/mysql_config
shell> sh -c "gcc -o progname `$CFG --cflags` progname.c `$CFG --libs`"
以这种方式使用mysql_config时,务必在字符(‘`’)内调用它。这样,就能通知shell执行它,并将其输出代入到环境命令中。