|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
业界普遍的声音认为:“MySQL是一个可靠的数据库系统,MySQL学习教程无论是在嵌入式或大型群集系统的部署中,还是在基于Web的应用程序领域。
6.2客户机程序1―毗连到服务器
我们的第一个MySQL客户机程序很复杂:毗连到服务器、断开,并加入。它自己并非十分有效,可是必需晓得怎样做它,由于实践上用MySQL数据库做任何事变都必需与服务器毗连。这是一个公用的操纵,开辟创立毗连的代码是编写每一个客户机程序都将利用的代码。除此以外,这项义务带给我们一些复杂入手下手的事变。今后,我们能够增添这个客户机来做一些更有效的事变。我们第一个客户机程序的源代码突Щ绦?,包含一个独自的文件,client.c:
这个源文件以包含stdio.h和mysql.h入手下手。MySQL客户机大概包含其他的头文件,可是一样平常来讲最少有两个是最基础的。
主机称号、用户称号、口令和数据库称号的缺省值流动在代码外部,使事变变得复杂。今后,我们将参数化这些值,以即可以在选项文件或命令行中指定它们。程序的main()函数创立和停止与服务器的毗连。创建毗连利用以下两个步骤:
1)挪用mysql_init()来猎取毗连处置程序。MYSQL数据范例是一个包含毗连信息的布局。这类范例的变量称为毗连处置程序。当我们将NULL传送给mysql_init()时,它分派一个MYSQL变量,初始化它,然后前往一个指向它的指针。
2)挪用mysql_real_connect()来创立与服务器的毗连。mysql_real_connect()可有恣意数目的参数,比方:
■毗连处置程序的指针。这不克不及为NULL;它应当是由mysql_init()前往的值。
■服务器主机。假如指定NULL或主机“localhost”,则客户机毗连到在当地主机利用UNIX套接字运转的服务器上。假如指定一个主机称号或主机的IP地点,则客户机毗连到利用TCP/IP毗连定名的主机上。
在Windows上,除利用TCP/IP毗连而不是用UNIX套接字之外,这类操纵是相似的(在WindowsNT上,假如主机为NULL,则在TCP/IP之前,先试着利用一个指定的管道来毗连)。
■用户称号和口令。假如称号为NULL,则客户机库将逻辑称号发送给服务器。假如口令为NULL,则不发送口令。
■端标语和套接字文件。这些指定为0或NULL,来告诉客户机库利用它的缺省值。假如不指定端口和套接字,则依据但愿毗连到的主机断定这些缺省值。附录F中的mysql_real_connect()的形貌给出有关这些的具体情形。
■标记值。由于我们不利用任何特定的毗连操纵,因而它是0。这个参数可用的选项在附录F中的mysql_real_connect()的项目中会商具体情形。要想停止这个毗连,可将毗连处置程序的指针传送给mysql_close()。当将毗连处置程序传送mysql_close()来停止个毗连时,由mysql_init()主动分派的毗连处置程序主动地开释。
要想测试客户机程序1,可以使用本章后面创建客户机程序时给出的引导来编译和毗连,然后运转它:
%client1程序毗连到服务器、断开并加入。这一点都不使人镇静,但它是一个入手下手。但是,它只是一个入手下手,由于有两个主要的弱点:
■客户机没有毛病反省,以是其实不真正地晓得实践上它是不是在事情!
■毗连参数(主机称号,用户称号等)在源代码外部流动。假如同意用户经由过程指定选项文件或命令行中的参数来办理这个成绩则更好一些。这些成绩的处置都不坚苦。我们将鄙人面专门办理它们。
也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果MySQL学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。 |
|