??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品乱码久久久久久蜜桃图片 ,人妻精品久久无码区,久久99国产精品一区二区http://www.shnenglu.com/flyinghare/category/11478.html兔子zh-cnFri, 11 Oct 2013 10:25:05 GMTFri, 11 Oct 2013 10:25:05 GMT60C++操作mysql数据库文章资料汇?/title><link>http://www.shnenglu.com/flyinghare/archive/2013/10/11/203664.html</link><dc:creator>会飞的兔?/dc:creator><author>会飞的兔?/author><pubDate>Fri, 11 Oct 2013 09:56:00 GMT</pubDate><guid>http://www.shnenglu.com/flyinghare/archive/2013/10/11/203664.html</guid><wfw:comment>http://www.shnenglu.com/flyinghare/comments/203664.html</wfw:comment><comments>http://www.shnenglu.com/flyinghare/archive/2013/10/11/203664.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/flyinghare/comments/commentRss/203664.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/flyinghare/services/trackbacks/203664.html</trackback:ping><description><![CDATA[<table border="0" cellspacing="1" cellpadding="1" align="center" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff; width: 680px;"><tbody><tr><td><table border="0" cellspacing="0" cellpadding="5" style="width: 676px;"><tbody><tr><td><strong>usidc5</strong></td><td align="right">2010-07-19 00:19</td></tr><tr bgcolor="#ffffff"><td colspan="2"><h1>C++操作mysql数据库文章资料汇?/h1><span style="font-family: tahoma; font-size: 14px; color: #222222; line-height: 23px;"><p style="margin: 15px 0pt; padding: 0px;">VC的MySQL~程<br />在你的程式中使用数据库是个不做的注意。如果已l有可用的MySQL服务 器,在VC中可以按照如下方法实C数据库的q接?/p><p style="margin: 15px 0pt; padding: 0px;">1?找來MySQL(Win32)安裝目录下的include文g夾, 其d到VC头文件目录列表中Q?/p><p style="margin: 15px 0pt; padding: 0px;">QVC6 -> Options -> Directories -> 加入此目录)</p><p style="margin: 15px 0pt; padding: 0px;">QVC2005 -> 工具 -> 选项 -> 目和解決方?-> VC++目录 -> 昄以下内容的目?-> 包含文g -> 加入此目录)</p><p style="margin: 15px 0pt; padding: 0px;">2、找到MySQL(Win32)安裝?录下的lib文g夹, 其d到VC库文件目录列表中Q?/p><p style="margin: 15px 0pt; padding: 0px;">QVC6 -> Options -> Directories -> 加入此目录)</p><p style="margin: 15px 0pt; padding: 0px;">QVC2005 -> 工具 -> 选项 -> 目和解x?-> VC++目录 -> 昄以下内容的目?-> 库文?-> 加入此目录,注意是lib/debug或lib/optQ?/p><p style="margin: 15px 0pt; padding: 0px;">3、新Z个工E,参考如下代码;</p><p style="margin: 15px 0pt; padding: 0px;">// mysql.cpp : Defines the entry point for the console application.<br />//</p><p style="margin: 15px 0pt; padding: 0px;">#include "stdafx.h"<br />#include <stdio.h><br />#include <winsock.h><br />#include <mysql.h><br />#include <windows.h></p><p style="margin: 15px 0pt; padding: 0px;">#pragma comment(lib, "libmysql.lib")</p><p style="margin: 15px 0pt; padding: 0px;"><br />int main(int argc, char* argv[])<br />...{<br />unsigned short Port = 3306;<br />char *IPAddress = "192.168.31.56";<br />char *UserName = "root";<br />char *Password = "";<br />char *DBName = "SAS_1_2_0";</p><p style="margin: 15px 0pt; padding: 0px;">printf("Start... ");<br /><br />MYSQL *ssock;<br />//char execsql[500];</p><p style="margin: 15px 0pt; padding: 0px;">ssock = (MYSQL *)malloc(sizeof(MYSQL));<br /><br />// 在某些版本中Q不需要该初始化工作,可观看mysql.H以及readme<br />mysql_init(ssock);<br />if(ssock == NULL)<br />...{<br />printf("EROR: MySQL ssock init error. ");<br />return FALSE;<br />}</p><p style="margin: 15px 0pt; padding: 0px;">//q接指定数据?br />ssock = mysql_real_connect(ssock, IPAddress, UserName, Password, NULL, Port, NULL, 0);<br />if(!ssock)<br />...{<br />printf("conn fail... ");</p><p style="margin: 15px 0pt; padding: 0px;">//memcpy(eee, mysql_error(ssock), 20);<br />//fprintf(stderr, "Failed to connect to database: Error: %s ", mysql_error(ssock));</p><p style="margin: 15px 0pt; padding: 0px;">//printf("%c ", eee);<br />unsigned int mtint = mysql_errno(ssock);<br />//printf("%d ");<br />return FALSE;<br />}</p><p style="margin: 15px 0pt; padding: 0px;">if(mysql_select_db(ssock, DBName) != 0)<br />...{<br />printf("select db error. ");<br />return FALSE;<br />}</p><p style="margin: 15px 0pt; padding: 0px;">printf("version=%d ", mysql_get_server_version(ssock));<br />//exec my execsql string<br />//sprintf(execsql,"create table girls (name char(10),age int)");<br />//mysql_real_query(ssock,execsql,strlen(execsql));<br />mysql_close(ssock);</p><p style="margin: 15px 0pt; padding: 0px;">printf("End... ");<br />return TRUE;<br />}<br />4、编译连接,q行卛_?/p><p style="margin: 15px 0pt; padding: 0px;"> </p></span></td></tr></tbody></table></td></tr></tbody></table><p style="margin: 0px; padding: 0px; color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"> </p><table border="0" cellspacing="1" cellpadding="1" align="center" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff; width: 680px;"><tbody><tr><td><table border="0" cellspacing="0" cellpadding="5" style="width: 676px;"><tbody><tr><td><strong>usidc5</strong></td><td align="right">2010-07-19 00:21</td></tr><tr bgcolor="#ffffff"><td colspan="2">q里归纳了C API可用的函数Qƈ在下一节详l介l了它们?br /><br />函数<br />描述<br /><br />mysql_affected_rows()<br />q?回上ơUPDATE、DELETE或INSERT查询更改Q删除/插入的行数?br /><br />mysql_autocommit()<br />切换 autocommit模式QON/OFF<br /><br />mysql_change_user()<br />更改打开q接上的用户和数据库?br /><br />mysql_charset_name()<br />q?回用于连接的默认字符集的名称?br /><br />mysql_close()<br />关闭服务器连接?br /><br />mysql_commit()<br />?交事务?br /><br />mysql_connect()<br />q接到MySQL服务器。该函数已不再被重视Q?mysql_real_connect()取代?br /><br />mysql_create_db()<br />创徏数据库。该函数已不再被重视Q?SQL语句CREATE DATABASE取而代之?br /><br />mysql_data_seek()<br />在查询结果集中查扑ֱ性行~号?br /><br />mysql_debug()<br />?l定的字W串执行DBUG_PUSH?br /><br />mysql_drop_db()<br />撤销数据库。该函数已不再被重视Q用SQL语句DROP DATABASE取而代之?br /><br />mysql_dump_debug_info()<br />让服务器调试信息写入日志?br /><br />mysql_eof()<br />?定是否读取了l果集的最后一行。该函数已不再被重视Q可以用mysql_errno()或mysql_error()取而代之?br /><br />mysql_errno()<br />q?回上ơ调用的MySQL函数的错误编受?br /><br />mysql_error()<br />q回上次调用的MySQL函数的错误消息?br /><br />mysql_escape_string()<br />?了用在SQL语句中,对特D字W进行{义处理?br /><br />mysql_fetch_field()<br />q回下一个表字段的类型?br /><br />mysql_fetch_field_direct()<br />l?定字D늼Pq回表字D늚cd?br /><br />mysql_fetch_fields()<br />q回所有字D늻构的数组?br /><br />mysql_fetch_lengths()<br />q?回当前行中所有列的长度?br /><br />mysql_fetch_row()<br />从结果集中获取下一?br /><br />mysql_field_seek()<br />?列光标置于指定的列?br /><br />mysql_field_count()<br />q回上次执行语句的结果列的数目?br /><br />mysql_field_tell()<br />q?回上ơmysql_fetch_field()所使用字段光标的位|?br /><br />mysql_free_result()<br />释放l果集用的 内存?br />mysql_get_client_info()<br />以字W串形式q回客户端版本信息?br /><br />mysql_get_client_version()<br />?整数形式q回客户端版本信息?br /><br />mysql_get_host_info()<br />q回描述q接的字W串?br /><br />mysql_get_server_version()<br />?整数形式q回服务器的版本受?br /><br />mysql_get_proto_info()<br />q回q接所使用的协议版本?br /><br />mysql_get_server_info()<br />q?回服务器的版本号?br /><br />mysql_info()<br />q回关于最q所执行查询的信息?br /><br />mysql_init()<br />?取或初始化MYSQLl构?br /><br />mysql_insert_id()<br />q回上一个查询ؓAUTO_INCREMENT列生成的ID?br /><br />mysql_kill()<br />杀 ȝ定的U程?br /><br />mysql_library_end()<br />最l确定MySQL C API库?br /><br />mysql_library_init()<br />?始化MySQL C API库?br /><br />mysql_list_dbs()<br />q回与简单正则表辑ּ匚w的数据库名称?br /><br />mysql_list_fields()<br />q?回与单正则表辑ּ匚w的字D名U?br /><br />mysql_list_processes()<br />q回当前服务器线E的列表?br /><br />mysql_list_tables()<br />q?回与单正则表辑ּ匚w的表名?br /><br />mysql_more_results()<br />查是否还存在其他l果?br /><br />mysql_next_result()<br />?多语句执行过E中q回/初始化下一个结果?br /><br />mysql_num_fields()<br />q回l果集中的列数?br /><br />mysql_num_rows()<br />q?回结果集中的行数?br /><br />mysql_options()<br />为mysql_connect()讄q接选项?br /><br />mysql_ping()<br /> 查与服务器的q接是否工作Q如有必要重新连接?br /><br />mysql_query()<br />执行指定?#8220;以Nulll结的字W串”的SQL查询?br /><br />mysql_real_connect()<br />q?接到MySQL服务器?br /><br />mysql_real_escape_string()<br />考虑到连接的当前字符集,Z在SQL语句中 用,对字W串中的Ҏ(gu)字符q行转义处理?br /><br />mysql_real_query()<br />执行指定数字W串的SQL查询?br /><br />mysql_refresh()<br />?新或复位表和高速缓册Ӏ?br /><br />mysql_reload()<br />通知服务器再ơ加载授权表?br />mysql_rollback()<br />?滚事务?br /><br />mysql_row_seek()<br />使用从mysql_row_tell()q回的|查找l果集中的行偏移?br /><br />mysql_row_tell()<br />q?回行光标位置?br /><br />mysql_select_db()<br />选择数据库?br /><br />mysql_server_end()<br />最 l确定嵌入式服务器库?br /><br />mysql_server_init()<br />初始化嵌入式服务器库?br /><br />mysql_set_server_option()<br />?q接讄选项Q如多语句)?br /><br />mysql_sqlstate()<br />q回关于上一个错误的SQLSTATE错误代码?br /><br />mysql_shutdown()<br />?闭数据库服务器?br /><br />mysql_stat()<br />以字W串形式q回服务器状态?br /><br />mysql_store_result()<br /> 索完整的l果集至客户端?br /><br />mysql_thread_id()<br />q回当前U程ID?br /><br />mysql_thread_safe()<br />?果客L已编译ؓU程安全的,q回1?br /><br />mysql_use_result()<br />初始化逐行的结果集索?br /><br />mysql_warning_count()<br />q?回上一个SQL语句的告警数?br /> <br /></td></tr></tbody></table></td></tr></tbody></table><p style="margin: 0px; padding: 0px; color: #333333; font-family: Arial; line-height: 26px; background-color: #ffffff;"> </p><table border="0" cellspacing="0" cellpadding="5" style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff; width: 694px;"><tbody><tr><td><strong>usidc5</strong></td><td align="right">2010-07-19 00:22</td></tr><tr bgcolor="#ffffff"><td colspan="2"><span style="font-size: small;"><span style="font-family: tahoma;"><span style="color: #222222;"><div>与MySQL交互Ӟ 应用E序应用该一般性原则:</div><div></div><div>1. 通过调用mysql_library_init()Q初始化MySQL库。库可以是mysqlclient C客户端库Q或mysqld嵌入式服务器库,具体情况取决于应用程序是否与“-libmysqlclient”?#8220;-libmysqld”标志链接?/div><div></div><div>2. 通过调用mysql_init()初始化连接处理程序,q过调用mysql_real_connect()q接到服务器?/div><div></div><div>3. 发出SQL语句q处理其l果。(在下面的讨论中,详细介绍了用它的方法)?/div><div></div><div>4. 通过调用mysql_close()Q关闭与MySQL服务器的q接?/div><div></div><div>5. 通过调用mysql_library_end()Q结束MySQL库的使用?/div><div></div><div>调用 mysql_library_init()和mysql_library_end()的目的在于,为MySQL库提供恰当的初始化和l束处理。对于与客户 端库链接的应用程序,它们提供了改q的内存理功能。如果不调用mysql_library_end()Q内存块仍将保持分配状态(q不会增加应用程序 用的内存量,但某些内存泄漏检器抗议它Q。对于与嵌入式服务器链接的应用程序,q些调用会启动ƈ停止服务器?/div><div></div><div>mysql_library_init() 和mysql_library_end()实际上是#defineW号Q这cȝ号得它们等效于mysql_server_init()?mysql_server_end()Q但其名U更清楚地指明,无论应用E序使用的是mysqlclient或mysqld库,启动或结束MySQL?Ӟ应调用它们。对于早期的MySQL版本Q可调用mysql_server_init()和mysql_server_end()取而代之?/div><div></div><div>?果愿意,可省略对mysql_library_init()的调用,q是因ؓQ必要时Qmysql_init()会自动调用它?/div><div></div><div>?惌接到服务器,可调用mysql_init()来初始化q接处理E序Q然后用该处理程序(以及其他信息Q如L名、用户名和密码)调用 mysql_real_connect()。徏立连接后Q在低于5.0.3版的API中,mysql_real_connect()会将再连接标?QMYSQLl构的一部分Q设|ؓ1Q或在较新的版本中,其讄?。对于该标志Q?#8220;1”指明Q如果因q接丢失而无法执行语句,攑ּ之前Q会试再次 q接到服务器。从MySQL 5.0.13开始,可以在mysql_options()上用MYSQL_OPT_RECONNECT选项Q以控制再连接行为。完成连接后Q调?mysql_close()中止它?/div><div></div><div>当连接处于活动状态时Q客L或许会?mysql_query()或mysql_real_query()向服务器发出SQL查询。两者的差别在于Qmysql_query()预期的查询ؓ?定的、由Nulll结的字W串Q而mysql_real_query()预期的是计数字符丌Ӏ如果字W串包含二进制数据(其中可能包含Null字节Q,?必须使用mysql_real_query()?/div><div></div><div>对于每个非SELECT查询Q例如INSERT?UPDATE、DELETEQ,通过调用mysql_affected_rows()Q可发现有多行已被改变Q媄响)?/div><div></div><div>?于SELECT查询Q能够检索作为结果集的行。注意,某些语句因其q回行,cM与SELECT。包括SHOW、DESCRIBE和EXPLAIN。应按照 对待SELECT语句的方式处理它们?/div><div></div><div>客户端处理结果集的方式有两种。一U方式是Q通过调用 mysql_store_result()Q一ơ性地索整个结果集。该函数能从服务器获得查询返回的所有行Qƈ它们保存在客户端。第二种方式是针对客 L的,通过调用mysql_use_result()Q对“按行”l果集检索进行初始化处理。该函数能初始化索结果,但不能从服务器获得Q何实际行?/div><div></div><div>?q两U情况下Q均能通过调用mysql_fetch_row()讉K行。通过 mysql_store_result()Qmysql_fetch_row()能够讉K以前从服务器获得的行。通过 mysql_use_result()Qmysql_fetch_row()能够实际地检索来自服务器的行。通过调用 mysql_fetch_lengths()Q能获得关于各行中数据大的信息?/div><div></div><div>完成l果集操?后,误用mysql_free_result()释放l果集用的内存?/div><div></div><div>q两U检索机制是互补 的。客LE序应选择最能满_要求的方法。实际上Q客L最怋用的是mysql_store_result()?/div><div></div><div>mysql_store_result() ?个优点在于,׃行全部提取C客户端上Q你不仅能连l访问行Q还能用mysql_data_seek()或mysql_row_seek()?l果集中向前或向后移动,以更改结果集内当前行的位|。通过调用mysql_num_rows()Q还能发现有多少行。另一斚wQ对于大的结?集,mysql_store_result()所需的内存可能会很大Q你很可能遇到内存溢出状c?/div><div></div><div>mysql_use_result() ?个优点在于,客户端所需的用于结果集的内存较?yu),原因在于Q一ơ它仅维护一行(׃分配开销较低Qmysql_use_result()能更快)。它 的缺点在于,你必d速处理每一行以避免妨碍服务器,你不能随问结果集中的行(只能q箋讉K行)Q你不知道结果集中有多少行,直至全部索了它们?止。不仅如此,即在检索过E中你判定已扑ֈ所L的信息,也必L索所有的行?/div><div></div><div>通过APIQ客?端能够恰当地Ҏ(gu)询作出响应(仅在必要时检索行Q,而无需知道查询是否是SELECT查询。可以在每次mysql_query()?mysql_real_query()后,通过调用mysql_store_result()完成该操作。如果结果集调用成功Q查询ؓSELECTQ而且 能够d行。如果结果集调用p|Q可调用mysql_field_count()来判断结果是否的是所预期的。如?mysql_field_count()q回0Q查询不q回数据Q表明它是INSERT、UPDATE、DELETE{)Q而且不返回行。如?mysql_field_count()是非0|查询应返回行Q但没有q回行。这表明查询是失败了的SELECT。关于如何实现该操作的示例,请参见关 于mysql_field_count()的介l?/div><div></div><div>无论?mysql_store_result()q是mysql_use_result()Q均允许你获取关于构成结果集的字D늚信息Q字D|目,它们的名U和 cd{)。通过重复调用mysql_fetch_field()Q可以按序讉K行内的字D信息,或者,通过调用 mysql_fetch_field_direct()Q能够在行内按字D늼可问字D信息。通过调用mysql_field_seek()Q可以改变当 前字D늚光标位置。对字段光标的设|将影响后箋的mysql_fetch_field()调用。此外,你也能通过调用 mysql_fetch_fields()Q一ơ性地获得关于字段的所有信息?/div><div></div><div>Z和通报?误,MySQL提供了用mysql_errno()和mysql_error()函数讉K错误信息的机制。它们能q回关于最q调用的函数的错误代码或?误消息,最q调用的函数可能成功也可能失败,q样Q你p判断错误是在何时出现的,以及错误是什么?/div></span></span></span></td></tr></tbody></table>转自Q?a >http://blog.csdn.net/ghost1236/article/details/5746905</a><img src ="http://www.shnenglu.com/flyinghare/aggbug/203664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/flyinghare/" target="_blank">会飞的兔?/a> 2013-10-11 17:56 <a href="http://www.shnenglu.com/flyinghare/archive/2013/10/11/203664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>且将新火试新?- MySQL BenchmarkQ全文)http://www.shnenglu.com/flyinghare/archive/2013/07/24/202096.html会飞的兔?/dc:creator>会飞的兔?/author>Wed, 24 Jul 2013 10:03:00 GMThttp://www.shnenglu.com/flyinghare/archive/2013/07/24/202096.htmlhttp://www.shnenglu.com/flyinghare/comments/202096.htmlhttp://www.shnenglu.com/flyinghare/archive/2013/07/24/202096.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/202096.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/202096.html阅读全文

]]>
MYSQL数据库管理之权限理http://www.shnenglu.com/flyinghare/archive/2013/05/22/200500.html会飞的兔?/dc:creator>会飞的兔?/author>Wed, 22 May 2013 03:40:00 GMThttp://www.shnenglu.com/flyinghare/archive/2013/05/22/200500.htmlhttp://www.shnenglu.com/flyinghare/comments/200500.htmlhttp://www.shnenglu.com/flyinghare/archive/2013/05/22/200500.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/200500.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/200500.html阅读全文

]]>
MYSQL 安装f(xi)ederated存储引擎 http://www.shnenglu.com/flyinghare/archive/2013/05/05/199996.html会飞的兔?/dc:creator>会飞的兔?/author>Sun, 05 May 2013 14:07:00 GMThttp://www.shnenglu.com/flyinghare/archive/2013/05/05/199996.htmlhttp://www.shnenglu.com/flyinghare/comments/199996.htmlhttp://www.shnenglu.com/flyinghare/archive/2013/05/05/199996.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/199996.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/199996.htmlFederated存储引擎可以使你在本地数据库中访问远E数据库中的数据Q针对federated存储引擎表的查询会被发送到q程数据库的表上执行Q本地是不存储Q何数据的?/span>

要介l后Q是不是发现它和Oracle的database link(数据库链?非常怼Q它所实现的功能和db linkcMQ要在MySQL下找寻db link替代品的Qfederated存储引擎是不二的选择?/span>

1.   查看当前支持的存储引?/span>

SQL>show engines;

 

  1. +------------+---------+------------------------------------------------------------+--------------+------+------------+  
  2.  
  3. | Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |  
  4.  
  5. +------------+---------+------------------------------------------------------------+--------------+------+------------+  
  6.  
  7. | CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |  
  8.  
  9. | MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |  
  10.  
  11. | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |  
  12.  
  13. | InnoDB     | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |  
  14.  
  15. | MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |  
  16.  
  17. +------------+---------+------------------------------------------------------------+--------------+------+------------+  
  18.  
  19. 5 rows in set (0.00 sec) 

发现安装MySQL时没有编译进来,只能现安装了?/span>

2.   安装f(xi)ederated存储引擎

׃~译时没有选择federatedQ所以打通过INSTALL PLUGIN的方式安装,正常情况下,federated是支持动态安装的Q?/span>

   === Federated Storage Engine ===

  Plugin Name:      federated

  Description:      Connects to tables on remote MySQL servers

  Supports build:   static and dynamic

  Configurations:   max, max-no-ndb

可是执行以下命o时报错:

SQL>install plugin federated soname 'ha_federated.so';

ERROR 1126 (HY000): Can't open shared library '/usr/local/mysql/lib/mysql/plugin/ha_federated.so' (errno: 2 undefined symbol: dynstr_append_mem)

搜了一下,发现是个老问题,竟然到现在都没解冻I可见MySQL团队的效率和理的؜乱?a rel="nofollow" style="text-decoration: none; color: #0c4468;">http://bugs.mysql.com/bug.php?id=40942

没有办法了,只有重新~译MySQL源码? 加上--with-plugins=federated。从5.1.26开始,默认MySQL不启用federated存储引擎Q所以需要在my.cnf中加入federated选项或是在命令行?/span>--federated选项启动mysqld。编译后的结果如下:

SQL>show engines;

 

  1. +------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
  2.  
  3. | Engine     | Support | Comment                                                                    | Transactions | XA   | Savepoints |  
  4.  
  5. +------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
  6.  
  7. | CSV        | YES     | CSV storage engine                                                         | NO           | NO   | NO         |  
  8.  
  9. | MRG_MYISAM | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |  
  10.  
  11. | FEDERATED  | YES     | Federated MySQL storage engine                                             | NO           | NO   | NO         |  
  12.  
  13. | MyISAM     | YES     | Default engine as of MySQL 3.23 with great performance                     | NO           | NO   | NO         |  
  14.  
  15. | InnoDB     | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |  
  16.  
  17. | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |  
  18.  
  19. +------------+---------+----------------------------------------------------------------------------+--------------+------+------------+  
转自Q?a >http://blog.163.com/ji_1006/blog/static/106123412011116265531/

]]>
SQL Error (1130): Host IP is not allowed to connect to this MySQL serverhttp://www.shnenglu.com/flyinghare/archive/2013/05/05/199986.html会飞的兔?/dc:creator>会飞的兔?/author>Sun, 05 May 2013 10:02:00 GMThttp://www.shnenglu.com/flyinghare/archive/2013/05/05/199986.htmlhttp://www.shnenglu.com/flyinghare/comments/199986.htmlhttp://www.shnenglu.com/flyinghare/archive/2013/05/05/199986.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/199986.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/199986.html通过HeidiSQLq接MYSQL数据库报错:

 SQL Error (1130): Host '192.168.1.100' is not allowed to connect to this MySQL server

说明所q接的用户帐h有远E连接的权限Q只能在本机(localhost)d?br style="word-break: break-all; line-height: normal !important;" />
需更改 mysql 数据?/strong>里的 user表里?host?br style="word-break: break-all; line-height: normal !important;" />把localhost改称%

首先按下面的步骤dMysql服务?br style="word-break: break-all; line-height: normal !important;" />
dmysql需要切换到dos下的mysql的bin目录Q进行如下操作:

mysql>use mysql;

mysql>update user set host = '%'  where user ='root';

mysql>flush privileges;

mysql>select 'host','user' from user where user='root';

mysql>quit

OK。远E连接成功!

转自Q?a >http://space.itpub.net/8183550/viewspace-680756

]]>
InnoDB的行锁模式及加锁Ҏ(gu)和实现方?/title><link>http://www.shnenglu.com/flyinghare/archive/2012/10/15/193301.html</link><dc:creator>会飞的兔?/dc:creator><author>会飞的兔?/author><pubDate>Mon, 15 Oct 2012 03:59:00 GMT</pubDate><guid>http://www.shnenglu.com/flyinghare/archive/2012/10/15/193301.html</guid><wfw:comment>http://www.shnenglu.com/flyinghare/comments/193301.html</wfw:comment><comments>http://www.shnenglu.com/flyinghare/archive/2012/10/15/193301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/flyinghare/comments/commentRss/193301.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/flyinghare/services/trackbacks/193301.html</trackback:ping><description><![CDATA[     摘要: 摘自 《深入浅出MySQL——数据库开发、优化与理l护?0.3.3 InnoDB的行锁模式及加锁Ҏ(gu)InnoDB实现了以下两U类型的行锁?nbsp;?nbsp;׃n锁(SQ:允许一个事务去M行,L其他事务获得相同数据集的排他锁。 排他锁(X)Q允许获得排他锁的事务更新数据,L其他事务取得相同数据集的׃n读锁和排他写锁。另外,Z允许行锁?..  <a href='http://www.shnenglu.com/flyinghare/archive/2012/10/15/193301.html'>阅读全文</a><img src ="http://www.shnenglu.com/flyinghare/aggbug/193301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/flyinghare/" target="_blank">会飞的兔?/a> 2012-10-15 11:59 <a href="http://www.shnenglu.com/flyinghare/archive/2012/10/15/193301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跑步的好?/title><link>http://www.shnenglu.com/flyinghare/archive/2012/05/15/174954.html</link><dc:creator>会飞的兔?/dc:creator><author>会飞的兔?/author><pubDate>Tue, 15 May 2012 03:36:00 GMT</pubDate><guid>http://www.shnenglu.com/flyinghare/archive/2012/05/15/174954.html</guid><wfw:comment>http://www.shnenglu.com/flyinghare/comments/174954.html</wfw:comment><comments>http://www.shnenglu.com/flyinghare/archive/2012/05/15/174954.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/flyinghare/comments/commentRss/174954.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/flyinghare/services/trackbacks/174954.html</trackback:ping><description><![CDATA[<span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">1.告别臃肿w材?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">许多人开始跑步就是因为减肥,跑步实减肥的最好运动方式,跑步每分钟比起其他运动燃烧更多的卡\里?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">2.防止你的骨骼Q肌肉退化?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">我们的骨骼是和你的n体需求相互协调的。长期坐在显C器前的我们让我们的骨骼来脆弱。而长期的Q经常的q动会你的骨骼保持健康。更q一步说是防止我们w体内部老化的更快。经常的高强度锻|例如跑步Q被证明可以促进Z荷尔蒙的生长Q荷蒙是那些名hZ看v来更q轻而持l注的药剂?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">3.抉|疄 </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">跑步可以降低得中风和乌癌的风险。经常的跑步已经成ؓȝ寚w些容易引发或在已l处在早期的骨质疏松Q糖病Q高血压病人的ȝ?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">4.l持q提高M的n体水q?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">跑步是是Z可以采取的最好的ȝw体的运动。它可以提高胆固?降低血液凝块的危险Q锻g?0%的经常处于闲|状态的肺。跑步还可以通过增加你的淋巴l胞(yu)来增Z的免疫力?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">5.让你更加自信?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">慢跑像其他一些单动一P它可以增Z的自信心。跑步让你完成一ơ又一ơ的试Q让你变得更强大Q更加肯定自己。他让你真实的越q某个山峎ͼI过某个障碍.在意识到你的w体已经更加强壮Q更加有用,你会得到被赋予力量和自由的感觉。自信更是那些通过跑步成功的减肥ƈ得到自己心中理想w材的跑步者的宝贵财富?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">6.放松自己Q减d力?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">慢跑可以转移聂注意力Q沐在路旁的风景中Q你的烦g定会消失D尽?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">长跑适合那些正处在一堆头|gh的烦心事的h。还有比在两个小时的长跑中,清理的的头脑、舒~自q经更好的主意了吗?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">如果你此时觉得异常压抑,何不快跑一下呢Q之后你会一个好的心情?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">7.著名?#8220;跑步者高C?#8221; </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">包括释放压力Q慢跑被证明提高你的心态。跑步,特别在户外和旅行?会w体释放一U物质让你生一U幸愉(zhn)感Q跑步者高C验)或者就是快乐的感觉。跑步已l被采用了多q来ȝ临床抑郁症,上瘾{。更的压力Q更的压抑Q更的疲劳Q更的混ؕQ经q一D|间的l常跑步Q病人很快就有了变化。跑步让他们有了注意的对象,让他们看C除了他们消极的状态和沉h的事务,q有一些美好的东西的存在?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">8.ȝ你的头脑?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">像对你的w体有所帮助一P跑步同样对你的头脑很有帮助。通过在跑步中克服一pd的障,你学会了专注和决?在经历那些你几乎要放弃的长跑或其他项目后你会发现Q你在跑步过E中产生的意志和体魄的增你在其他斚w有着同样的专注和军_?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">9.增强合作_?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">又是一个非常值得d的好处。这点好处或许让很多人感到惊奇,因ؓZ认ؓ跑步不可能得到这U益处,仅仅׃跑步是单动。但是跑步确实有时涉及到互相合作。旅行跑步,特别是在那些路况不好的地方,需要极大的合作意识。这些\面经怼有一?障碍如石头、灌木让跑步q行的很困难?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">10.随时随地Q简单?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">不是很多的运动可以在M地方Q几乎不需要设备的。我敢肯定古代希腊h会争辩说甚至是鞋子和衣服也不需要。今天,我们只是需要一双好点的跑步鞋然后就可以出发了。从市中心到郊区,整个世界的地方等待你的探索。经常出差吗Q你的旅行箱里肯定会有空间来装你的运动鞋的。这个世界就是你的健w房Q去再次发现它吧?nbsp;</span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Here are some tips for how to make running a practice: </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Be consistent in your running program. Plan your weekly workout schedule and stick to it. This will teach you persistence. </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Know which focuses you'll use during every run. This will teach you planning and mindfulness, and improve your mind/body connection. </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">Constantly practice relaxing your muscles. This will help to relieve tension and train you to relax no matter what activity you're doing. </span><br style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; " /><span style="color: #111111; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; ">At the end of your run, spend a few minutes doing an "end-of-run review." Ask yourself how well you did with keeping your focuses, how your body felt during the run. What did you come away with that will help your next run? Then, the next time you go out for a run, you'll have something to work on that you brought forward from your last run. In this way you'll build a healthy, growing and sustainable running program. </span> <br />转自Q?a >http://www.douban.com/group/topic/20749798/</a><img src ="http://www.shnenglu.com/flyinghare/aggbug/174954.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/flyinghare/" target="_blank">会飞的兔?/a> 2012-05-15 11:36 <a href="http://www.shnenglu.com/flyinghare/archive/2012/05/15/174954.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用命令行讄MYSQL字符?http://www.shnenglu.com/flyinghare/archive/2012/05/08/174001.html会飞的兔?/dc:creator>会飞的兔?/author>Tue, 08 May 2012 09:12:00 GMThttp://www.shnenglu.com/flyinghare/archive/2012/05/08/174001.htmlhttp://www.shnenglu.com/flyinghare/comments/174001.htmlhttp://www.shnenglu.com/flyinghare/archive/2012/05/08/174001.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/174001.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/174001.htmlMySQL 4.1的字W集支持(Character Set Support)有两个方面:字符?Character set)和排序方?Collation)。对于字W集的支持细化到四个层次: 服务?server)Q数据库(database)Q数据表(table)和连?connection)?/span>

查看pȝ的字W集和排序方式的讑֮可以通过下面的两条命令:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'collation_%'; 
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

上面列出的值就是系l的默认倹{?br style="clear: both; " />
一般就设|了表的默认字符集ؓutf8q且通过UTF-8~码发送查询,你会发现存入数据库的仍然是ؕ码。问题就出在q个connectionq接层上。解x法是在发送查询前执行一下下面这句:

SET NAMES 'utf8';

它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

而MySQL数据库的4.1是一个分水岭Q?.1直接支持UnicodeQ它以下版本支持的不好; 

MySQL JDBC Driver?.0.16也是一个分水岭Q?.0.16版本会取数据库本w的~码Q然后按照该~码转换Q这U方式和Oracle的JDBC Driver是一L。例如你的数据库是GBK~码的话QJDBC Driver׃把数据库里面的取出来的字W串按照GBK往unicode转换Q送给JVM。因此正的讄数据库本w的~码尤为重要?nbsp;

MySQL JDBC Driver3.0.16以下的版本则不然Q它不会那么的根据数据库~码来确定如何{换,它L默认使用ISO8859-1Q因此你必须使用 characterEncoding=GBK来强制他把数据库中取出来的字W串按照GBK来往unicode转换?nbsp;

因此Q用什么数据库版本Q不是3.xQ还?.0.xq是4.1.xQ其实对我们来说不重要,重要的有二: 

1) 正确的设定数据库~码QMySQL4.0以下版本的字W集L默认ISO8859-1QMySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8Q那么在创徏数据库的时候就要指定好UTF-8(创徏好以后也可以改,4.1以上版本q可以单独指定表的字W集) 

2) 使用3.0.16以上版本的JDBC DriverQ那么你׃需要再写什么characterEncoding=UTF-8


转自Q?/strong>

http://www.blogjava.net/bonix/articles/159291.html


]]>
MySQL存储引擎http://www.shnenglu.com/flyinghare/archive/2012/04/01/169766.html会飞的兔?/dc:creator>会飞的兔?/author>Sun, 01 Apr 2012 03:10:00 GMThttp://www.shnenglu.com/flyinghare/archive/2012/04/01/169766.htmlhttp://www.shnenglu.com/flyinghare/comments/169766.htmlhttp://www.shnenglu.com/flyinghare/archive/2012/04/01/169766.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/169766.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/169766.html阅读全文

]]>
通过 mysql ?INFORMATION_SCHEMA信息数据库得到元数据http://www.shnenglu.com/flyinghare/archive/2012/03/26/169036.html会飞的兔?/dc:creator>会飞的兔?/author>Mon, 26 Mar 2012 10:08:00 GMThttp://www.shnenglu.com/flyinghare/archive/2012/03/26/169036.htmlhttp://www.shnenglu.com/flyinghare/comments/169036.htmlhttp://www.shnenglu.com/flyinghare/archive/2012/03/26/169036.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/169036.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/169036.html阅读全文

]]>
MySQL 的事件探查器 mysql-proxyhttp://www.shnenglu.com/flyinghare/archive/2012/03/14/167863.html会飞的兔?/dc:creator>会飞的兔?/author>Wed, 14 Mar 2012 03:38:00 GMThttp://www.shnenglu.com/flyinghare/archive/2012/03/14/167863.htmlhttp://www.shnenglu.com/flyinghare/comments/167863.htmlhttp://www.shnenglu.com/flyinghare/archive/2012/03/14/167863.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/167863.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/167863.html是不是一直ؓ怎样调试 MySQL 上的应用E序而苦|现在有个工具可以让我们脱苦了--MySQL ProxyQ从名称上就可以看出来是 MySQL 代理Q可以作?MySQL 服务器和客户端的中介Q因Z?MySQL 的网l协议,所以所有兼容该协议?MySQL 客户端都不需要做修改可以直接连接。除了{发外Q还可以监控、过滤和修改客户端与服务器之间的通信数据QMySQL Proxy ?lua 作ؓ脚本语言?br />    支持 MySQL 5.0.x 以上版本Q可以实现类?MSSQL 的事件探器功能?br />
安装Q?/strong>
?Linux ?Windows q_的二q制包下载,解开直接使用卛_?br />
主要命o行选项Q?br />--help-all — 昄所有帮助选项?nbsp;
--proxy-backend-addresses=host:port — 要连接的 MySQL 服务器地址和端口,可以接多个服务器Q请求会以轮询的方式q行转发?br />--proxy-lua-script=file 要蝲入的 lua 脚本文g?/p>


安装Q?/strong>
?Linux ?Windows q_的二q制包下载,解开直接使用卛_?br />
主要命o行选项Q?br />--help-all — 昄所有帮助选项?nbsp;
--proxy-backend-addresses=host:port — 要连接的 MySQL 服务器地址和端口,可以接多个服务器Q请求会以轮询的方式q行转发?br />--proxy-lua-script=file 要蝲入的 lua 脚本文g?br />
CZ:
F:\mysql-proxy-0.8.0-win32-x86\bin\mysql-proxy --proxy-backend-addresses=192.168.128.131:3306 --proxy-lua-script=F:/mysql-proxy-0.8.0-win32-x86/share/doc/mysql-proxy/tutorial-query-time.lua


注:自带的这个示例脚本可以显C收到的 SQL 操作h和执行时_也可以自q写脚?br />
客户端连?br />跟^常连服务器一P只是默认端口?4040Q连接后可以进?SQL 操作了,相应命o会显C在 Proxy 上?/p>

各种版本官网下蝲地址Q?a style="color: #999999 !important; border-bottom-color: #f8f8f8 !important; border-bottom-width: 2px !important; border-bottom-style: solid !important; text-decoration: none; ">http://dev.mysql.com/downloads/mysql-proxy/


转自Q?a >http://hi.baidu.com/bkitty/blog/item/e627b938cbd03aced56225f2.html



]]>
VC的MySQL~程http://www.shnenglu.com/flyinghare/archive/2012/03/13/167793.html会飞的兔?/dc:creator>会飞的兔?/author>Tue, 13 Mar 2012 10:00:00 GMThttp://www.shnenglu.com/flyinghare/archive/2012/03/13/167793.htmlhttp://www.shnenglu.com/flyinghare/comments/167793.htmlhttp://www.shnenglu.com/flyinghare/archive/2012/03/13/167793.html#Feedback0http://www.shnenglu.com/flyinghare/comments/commentRss/167793.htmlhttp://www.shnenglu.com/flyinghare/services/trackbacks/167793.html

一、在你的E序中用数据库是不错的注意。如果已l有可用的MySQL服务器,在VC中可以按照如下方法实C数据库的q接?br />1、找来MySQL(Win32)安装目录下的include文g夹,其d到VC头文件目录列表中Q?br />QVC6 -> Options -> Directories -> 加入此目录)
QVC2005 -> 工具 -> 选择 ->目和解x?-> VC++目录 -> 昄以下內容的目?-> 包含文g -> 加入此目录)2、找来MySQL(Win32)安装目录下的lib文g夹,?nbsp;其添加到VC库文件目录列表中Q?br />QVC6 -> Options -> Directories -> 加入此目录)
QVC2005 -> 工具 ->选择 -> 目和解決方?-> VC++目录 -> 昄以下內容的目?-> 库文?-> 加入此目录,注意是lib/debug或lib/optQ?br />3、新Z个工E,参考如下代码:
// mysql.cpp : Defines the entry point for the console application.

#include "stdafx.h"
#include <stdio.h>
#include <winsock.h>
#include <mysql.h>
#include <windows.h>
#pragma comment(lib, "libmysql.lib")
int main(int argc, char* argv[])
{
    unsigned short Port = 3306;
    char *IPAddress = "192.168.31.56";
    char *UserName = "root";
    char *Password = "";
    char *DBName = "SAS_1_2_0";
    printf("Start... ");
  
    MYSQL *ssock;
    //char execsql[500];
    ssock = (MYSQL *)malloc(sizeof(MYSQL));    
    //在某些版本中Q不需要该初始化工作,可观看mysql.H以及readme
    mysql_init(ssock);
    if(ssock == NULL)
    {
        printf("EROR: MySQL ssock init error. ");
        return FALSE;
    }

    //q接到指定的数据?br />    ssock = mysql_real_connect(ssock, IPAddress, UserName, Password, NULL, Port, NULL, 0);
    if(!ssock)
    {
        printf("conn fail... ");
        //memcpy(eee, mysql_error(ssock), 20);
        //fprintf(stderr, "Failed to connect to database: Error: %s ", mysql_error(ssock));
        
        //printf("%c ", eee);
        unsigned int mtint = mysql_errno(ssock);
        //printf("%d ");
        return FALSE;
    }
    if(mysql_select_db(ssock, DBName) != 0)
    {
        printf("select db error. ");
        return FALSE;
    }
    printf("version=%d ", mysql_get_server_version(ssock));
    //exec my execsql string
    //sprintf(execsql,"create table girls (name char(10),age int)");
    //mysql_real_query(ssock,execsql,strlen(execsql));
    mysql_close(ssock);
    printf("End... ");
    return TRUE;

二、怎样用c/c++~程q接mysql数据?br />     执行一个查询有以下几个步骤要做。首先执行一个查询,然后保存l果Q?nbsp;  
     得到的是一个子集。这里是一个小例子Q?nbsp;  
  #include   <stdio.h>  
  #include     
  #include   <mysql.h>
  MYSQL   mysql;   
  MYSQL_RES   *res;   
  MYSQL_ROW   row;   
  void   exiterr(int   exitcode)   
  {   
       fprintf(   stderr,   "%s/n",   mysql_error(&mysql)   );   
       exit(   exitcode   );   
  }   
  int   main()   
  {   
        uint   i   =   0;   
        if   (!(mysql_connect(&mysql,"host","username","password")))     
                 exiterr(1);   
        if   (mysql_select_db(&mysql,"payroll"))   
              exiterr(2);   
        if   (mysql_query(&mysql,"SELECT   name,rate   FROM   emp_master"))   
              exiterr(3);   
        if   (!(res   =   mysql_store_result(&mysql)))   
              exiterr(4);   
        while((row   =   mysql_fetch_row(res)))   {   
             for   (i=0   ;   i   <   mysql_num_fields(res);   i++)     
                  printf("%s/n",row[i]);   
        }   
        mysql_free_result(res);   
        mysql_close(&mysql);   
   }   
        mysql_query   函数把查询送给服务器,如果查询成功Q调用mysql_store_result 函数分配一个MYSQL_RES   l构q且重新从服务器获得一个结果集?br />       你可以用mysql_fetch_row   函数来查看数据。这样做你将获得一?nbsp;  MYSQL_ROW   指针指向数据中的一行?nbsp;  MYSQL_ROW   指针是一单的字符串数l。所有的数据cd被{换成字符串送到客户端?nbsp;  
        mysql_num_fields函数告诉你q回的列数。你可以l箋调用mysql_fetch_row直到它返回一个空指针以得到查询中的每一行?nbsp;  
        注意在这个例子里Q我们没有检查有I指针的列。如果你不用非I列的表Q那么你必须查一个特D行的列是否为空。一旦你使用完毕一个结果集Q你必须释放它。这通过   mysql_free_result   来完成?nbsp;  
       最后调用mysql_close来关闭你和数据库之间的连接?nbsp;  
       查看l果集你可以不用调用mysql_fetch_row查回的l果集共有多行。这?br />      int   mysql_num_rows(MYSQL_RES   *result)来完成?nbsp;  
       改变到被下一?nbsp;  mysql_fetch_row   调用q回的行Q你可以用void   mysql_data_seek(MYSQL_RES   *res,   uint   offset)   改变CQ意一行?nbsp; 获得更多的信?你可以用这几个额外的函数来扑և关于一个查询的更多的信息,q从服务器获得这些信息?nbsp;  
        如果你执行一个UPDATEQ?nbsp;  INSERT   或?nbsp;  DELETE   查询Q你可以用int   mysql_affected_rows   来查出共有多行数据被你影响到?nbsp;  
       如果在你的数据库里有二进制数据,那么得知数据的长度将是有用的。unsigned  int   *mysql_fetch_lengths(MYSQL_RES   *mysql)   返回一指出了结果集中每一?的长度的整型数组?nbsp;  
      当你插入一个带?nbsp;  AUTO_INCREMENT   列的表的时候,你可以用int   mysql_insert_id(MYSQL   *mysql)   来查出生成的那一行的ID?nbsp;  
======================

int main()
{
    MYSQL mysql;
    MYSQL_RES * res ; 
    MYSQL_FIELD * fd ; 
    MYSQL_ROW row ; 
    int id[10000];
    double result[10000][8];
    vector<string> v;

    if(mysql_init(&mysql) == NULL)
    {
     std::cout<<"init mysql data status fail"<<std::endl;
       return false;
   } 
 else
 {
  std::cout<<"init mysql data status success"<<std::endl;
 }
 
 if(NULL == mysql_real_connect(&mysql,"localhost","root","","wsnss",MYSQL_PORT,NULL,0))
 {
  std::cout<<"connect database fail"<<std::endl<<mysql_error(&mysql)<<std::endl;;
  return false;
 }
 else{
  std::cout<<"connect database success"<<std::endl;
 }

 char   szSqlText[500]=""; 
 int j = 0;

 sprintf(szSqlText,"%s","select * from data_receive "); 
 if (mysql_query( &mysql, szSqlText)) 
 //q行数据?nbsp;
 { 
     //执行SQL语句出错 
  cout<<"query error"<<endl;
  mysql_close( &mysql ) ; 
  return FALSE ; 
 } 
    else 
    {
  res = mysql_store_result( &mysql ) ; 
  int i;   
  while((row   =   mysql_fetch_row(res)))   {  
   id[j] = atoi(row[0]);
    for   (i = 1; i < mysql_num_fields(res); i++)   
    {
     result[j][i-1] =  atof(row[i]);
    }
    j++;
  }
    }   
   
  
 for(int i = 0 ; i < 10000; i++)
 {
  if(i>=j)
   break;
  char str[10000];
  stringstream ss;

        ss<<"insert into data_receive(ID,data1,data2,data3, data4,data5,data6,data7,data8)values('"<<id[i]<<"','"<<
   result[i][0]<<"','"<<result[i][1]<<"','"<<result[i][2]<<"','"<<
   result[i][3]<<"','"<<result[i][4]<<"','"<<result[i][5]<<"','"<<
   result[i][6]<<"','"<<result[i][7]<<"');";
  string s = ss.str();
  v.push_back(s);  
 }
 for(vector<string>::iterator iter = v.begin();  iter != v.end(); ++iter)
 {
  
  if(mysql_query(&mysql,(*iter).c_str())!=0)
  {
   std::cout<<"execute insert syntax fail"<<
     std::endl<<mysql_error(&mysql)<<endl;
   mysql_close(&mysql);
   return 1;
  }
 }
    mysql_free_result(res);
    mysql_close(&mysql);
    return 0;

转自Q?a >http://blog.csdn.net/ztj111/article/details/2512147

]]>
þþƷAV뽿ɫ| þþƷwwwˬ| ݺɫþþۺ| þĻ| ˾þþƷ| ݺ޾þþþþۺ| þsmȤ| ޹˾þþƷӰ| þþ| ˾þô߽ӰԺ95| Ʒ99þþþƷ| Ʒһþ| պƷþþþþþõӰ| ŷ龫Ʒþþþ| 99þ99þþƷƬ| Ʒҹþ| þþƷձҰ| һaƬþëƬëƬ| VVþþ| þƵ1| ھƷþþþþ鶹| 99þþƷ鶹| Ʒþһ| Ʒ޾þþþþ| ˾þ91| 91Ʒþþþþù۲| þùƷ԰| þ99Ʒþþþ| þþþùƷ| þþþùպƷվ| 99ƷþþþĻ| þþƷɧ| þþŮһ| þþ㽶ۺϼձ| Ʒþþþþþapp | þ99ƷСѼ| ޹պŷþ| ŷ˾þۺ| þۺƵվ| һþƵ| þsmȤ|