通用的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 ......
1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show
databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在
ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可 ......
上次在碰到这问题,在网上找了解决方法,可是没记下来。这星期要换机器,要把原来linux下的mysql数据库移到另一台服务器上。安装suse系统、再配置telnet、ftp服务、安装java JDK并配置、再安装eclipse和mysql,又花了一天的时间。感觉还是不熟练,配置防火墙老是不能将telnet和ftp服务排外。mysql又碰到了中文乱码问题,又在 ......
一. 建表与初始化数据
在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学习笔记 MySql概述:MySql是一个种关联数据库管理系统,所谓关联数据库就是将数据保存在不同的表中,而不是将所有数据放在一个大的仓库中。这样就增加了速度与提高了灵活性。并且MySql软件是一个开放源码软件。 注意,MySql所支持的TimeStamp的最大范围的问题,在32位机器上,支持的取值范围是年份最好不要超过2030年 ......