ͨÓõÄmysql dump³ÌÐò
¿ÉÒÔÊÊÓÃÈκÎsql , ×Ô¶¯Ê¶±ð×Ö¶ÎÃû£¬ gzipѹËõ , ´øÊä³öbuffer , Ö§³Ö·Ö¿â·Ö±í
ÐèÒª¸¨Öú´úÂëºÍMakefie , ÏÂÃæÊÇÖ÷³ÌÐò´úÂ룬
/**
* mysqlÊý¾Ý±ídump³ÌÐò
* @author : cheng limin
* @date : 2010-1-18
*
* ʹÓÃÑùÀý:
*./dump_mysql -c ../conf/dump.conf
* -t xml
* -s "select * from * where punish_type != 0"
* -f ctu.txt
*/
#include <iostream>
#include <string>
#include <errno.h>
#include <time.h>
#include <sys/time.h>
#include "mysql.h"
#include "INIParser.h"
#include "tbZip.h"
using namespace __gnu_cxx;
using namespace std;
#define OUT_FORMAT_TXT 0 /* Êä³öÎļþ¸ñʽ ÐÐÁиñʽ */
#define OUT_FORMAT_XML 1 /* Êä³öÎļþ¸ñʽ xml¸ñʽ */
/* ´ÓÃüÁîÐлñµÃµÄ²ÎÊý */
string g_confFile = ""; /* ÅäÖÃÎļþ */
string g_sectionName = ""; /* ÅäÖÃÎļþsection½ÚÃû³Æ */
string g_sql = ""; /* ÐèÒªÖ´ÐеÄsql */
string g_fileName = ""; /* Êä³öÎļþÃû */
/* ´ÓÅäÖÃÎļþ»ñµÃµÄ²ÎÊý */
string g_fieldSep = ""; /* ×ֶνáÊø */
string g_lineSep = ""; /* Ðнáβ */
string g_host = ""; /* Ö÷»úÃû */
int g_port = 3306; /* ¶Ë¿ÚºÅ ĬÈÏ3306 */
string g_user = ""; /* Óû§Ãû */
string g_passwd = ""; /* ÃÜÂë */
string g_db = ""; /* ¿âÃû */
string g_charset = ""; /* Êý¾Ý¿â×Ö·û¼¯ */
int g_compType = 0; /* Êä³öÎļþѹËõ·½Ê½ ĬÈÏ0 0=²»Ñ¹Ëõ 1=gzip */
int g_outFormat = OUT_FORMAT_TXT; /* Êä³öÎļþ¸ñʽ , ĬÈÏΪÎı¾*/
FILE *g_fp; /* Êä³öÎļþ¾ä±ú */
tbZip *g_tz; /* ѹËõÎļþ¹¤¾ßÀà */
/**
* ʹÓðïÖú
*
* @param progName ³ÌÐòÃû
*/
void usage(const char *progName)
{
fprintf(stderr, "************************************************* \n");
fprintf(stderr, "Usage: %s \n", progName);
fprintf(stderr, " -c configeFile ³ÌÐòµÄÅäÖÃÎļþ \n");
fprintf(stderr,
Ïà¹ØÎĵµ£º
mysql±àÂëӦעÒâµÄ»·½Ú£º
Õ⼸¸ö»·½Ú±àÂ붼ͳһÁË£¬Ò»°ã²»»á³öÏÖÂÒÂë¡£BTW:
¿ÉÒÔÓÃSET NAMES xÁÙʱÉèÖÃmysql±àÂ룺
Ï൱ÓÚ
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
È磺
mysql_query("SET NAMES 'gb2312'") or die("Query failed : " . mysql_er ......
mysqlµÄÊý¾Ý´¢´æÄ¿Â¼ÔÚmysqlµÄÅäÖÃÎļþmy.iniÎļþÉèÖ㬸ñʽÈçÏ£º
# Uncomment the following rows if you move the MySQL distribution to another
# location
basedir = d:/cyoa/mysql_cy/
datadir = d:/cyoa/mysql_cy/data/
ÆäÖÐdatadirĿ¼¶¨ÒåÁËmysqlµÄÊý¾Ý´æ´¢Î»Öã¬MySQLµÄÿ¸ ......
1¡¢È¡×Ö¶Î×¢ÊÍ
Select COLUMN_NAME ÁÐÃû, DATA_TYPE ×Ö¶ÎÀàÐÍ, COLUMN_COMMENT ×Ö¶Î×¢ÊÍ
from INFORMATION_SCHEMA.COLUMNS
Where table_name = 'companies'##±íÃû
AND table_schema = 'testhuicard'##Êý¾Ý¿âÃû
AND column_name LIKE 'c_name'##×Ö¶ÎÃû
2¡¢È¡µÃ±í×¢ÊÍ
Select table_name ±íÃû,TABLE_COMMENT ±í×¢ÊÍ ......
Ò»£® ½¨±íÓë³õʼ»¯Êý¾Ý
ÔÚmysqlµÄtestÊý¾Ý¿âÖн¨Á¢Ò»ÕÅÐÂ±í£ºtbl_user,½¨±íÓï¾äÈçÏ£º
DROP TABLE IF EXISTS `user`;
CREATE TABLE `tbl_user` (
`userid` varchar(50) NOT NULL,
`name` varchar(50) default '',
`blog` varchar(50) default '',
  ......
MySQLÐÔÄÜÓÅ»¯µÄ×î¼Ñ20+Ìõ¾Ñé
½ñÌ죬Êý¾Ý¿âµÄ²Ù×÷Ô½À´Ô½³ÉΪÕû¸öÓ¦ÓõÄÐÔÄÜÆ¿¾±ÁË£¬Õâµã¶ÔÓÚWebÓ¦ÓÃÓÈÆäÃ÷ÏÔ¡£¹ØÓÚÊý¾Ý¿âµÄÐÔÄÜ£¬Õâ²¢²»Ö»ÊÇDBA²ÅÐèÒªµ£ÐĵÄÊ£¬¶øÕâ¸üÊÇÎÒÃdzÌÐòÔ±ÐèҪȥ¹Ø×¢µÄÊÂÇé¡£µ±ÎÒÃÇÈ¥Éè¼ÆÊý¾Ý¿â±í½á¹¹£¬¶Ô²Ù×÷Êý¾Ý¿âʱ£¨ÓÈÆäÊDzé±íʱµÄSQLÓï¾ä£©£¬ÎÒÃǶ¼ÐèҪעÒâÊý¾Ý²Ù×÷µÄÐÔÄÜ¡£ÕâÀÎÒÃDz»» ......