1) 如何根据数据库名称备份数据库中的表结构?
 要求使用sql语句来备份?(不使用sqldump) 2)如何备份数据库,所有的数据都包含?
 要求使用sql语句来备份?(不使用sqldump) 3) 如何根据数据库名称来获取数据库存放的具体路径? 
这个最好调用C API,根据数据库名称返回数据库的存储路径?

解决方案 »

  1.   

    mysql -uroot -pxxx dbname -e "show create table xxx" >> /home/xxx.bak
    mysql -uroot -pxxx dbname -e "select * into outfile '/home/xx.bak' from tb "
    mysql -uroot -pxxx -e "show variables like '%datadir%'"
      

  2.   

    1) 如何根据数据库名称备份数据库中的表结构?
      要求使用sql语句来备份?(不使用sqldump)  2)如何备份数据库,所有的数据都包含?
      要求使用sql语句来备份?(不使用sqldump)为什么不用简单的方法?SELECT * FROM `information_schema`.`COLUMNS` a WHERE a.`TABLE_SCHEMA`='DATABASENAME'
    可以得到所有列名OR
    SELECT CONCAT('mysql -uroot -pxxx dbname -e "SHOW CREATE TABLE',a.`TABLE_NAME`,';">>r:/temp/123.txt',CHAR(13)) AS ss 
    INTO OUTFILE 'r:/temp/123.BAT'
    FROM `information_schema`.`TABLES` a WHERE a.`TABLE_SCHEMA`='DATABASENAME';执行123中的SQL语句可以导出结构SELECT CONCAT('select * into outfile \'r:/temp/',a.`TABLE_NAME`,'.txt\' from ',a.`TABLE_NAME`,CHAR(13)) AS ss 
    INTO OUTFILE 'r:/temp/123.BAT'
    FROM `information_schema`.`TABLES` a WHERE a.`TABLE_SCHEMA`='DATABASENAME'执行123中的SQL语句可以导出数据
      

  3.   

    直接调用C API传人dbname -e "show create table xxx" >> /home/xxx.bak不能执行??
      

  4.   

    存入BAT中,用语言调用
    OR
    直接在语言中运行
    mysql -uroot -pxxx -e "show variables like '%datadir%'"
      

  5.   

    直接在语言中运行是指在数据库sql命令行窗口上执行吗?
    我直接执行没有结果?
      

  6.   

    不是,这个是要在WINDOWS的DOS窗口下运行的,非在MYSQL命令行下运行
      

  7.   

    没错,有结果了.
    谢谢.但是如果我在程序中要使用这个变量,我就要透过管道方式分析执行后的文本,相当麻烦?有没有其他的方式使用C Api(如mysql_xxx)系列函数返回这个变量?
      

  8.   

    对,分析文本文件(MY。INI也是)
    or
    SELECT * FROM information_schema.GLOBAL_VARIABLES WHERE VARIABLE_NAME='datadir';  
      

  9.   

    对,分析文本文件(MY。INI也是)
    or
    SELECT * FROM information_schema.GLOBAL_VARIABLES WHERE VARIABLE_NAME='datadir';  
      

  10.   

    对,分析文本文件(MY。INI也是)
    or
    SELECT * FROM information_schema.GLOBAL_VARIABLES WHERE VARIABLE_NAME='datadir';  
      

  11.   

    如果information_schema不存在GLOBAL_VARIABLES表不就失败了,
      

  12.   

    如果5.1以上可以用系统表,否则show variables like '%datadir%
      

  13.   

    谢谢。其实我是有这样的需求,比如我要备份一个数据库A,备份文件名为xx.dat
    要把xx.dat放到数据库A所在的目录中,所以才有这样的需求?所以目前实现变的比较麻烦了?
    有没有其他比较好的方法针对这个需求?
      

  14.   

    至少目前没有,其实分折"show create table xxx" 所生成的TXT 文件非常简单
      

  15.   

    明白,谢谢.还有一个问题请教您就是:
    1)如何备份数据库(Yuu)中所有的表结构?
    2)如何备份数据库(Yuu)中所有的数据(包含表结构)?之前几乎很少用数据库,所以不熟?
      

  16.   

    1、2建议用MYSQLDUMP,简单,否则参考3楼