:)
给你发消息了,
将 SQL 发我信箱里

解决方案 »

  1.   

    我只是在mysql\data\目录下新一个abcd 目录
    这样并不代表建立了abcd数据库。还是老老实实建立abcd数据库吧。
      

  2.   

    呵呵,看了你的 SQL 文件,发现你的表都是 InnoDB 表!!!!!!!!!!!!!!!!!InnoDB 数据库并不是一个目录呀,
    所有的 InnoDB 表,只有表结构文件在 data 目录下,
    其它的表数据\表索引文件都是放在 InnoDB 专用的数据文件中的:)
    所以说,你通过建立文件夹来建立数据库是不行的,
    这种方式只对其它的表类型管用!!对于 InnoDB 数据库,你必须使用 CREATE DATABASE  SQL 语句来实现
      

  3.   

    我到mysql目录下去找,没有找到你说的innodb专用文件;
    这个姑且不管它了; 我一会儿加分, 但是我总共只能再加10(没有分了), 明天再加一次我接着请问:
    1. 我的项目和数据库的使用过程中, 如果某天我用mysqldump备份了整个数据库, 第二天我就发现数据库出了问题,那么这个时候我怎么恢复呢? (如果我直接往回导数据, 会不会报table 已存在的错误, 是不是应该先把整个数据库删除, 然后才能够恢复?)2. 我用的是mysql4.1.0中文参考手册,译者: 犬犬(心帆), 我没有其它相关的书; 那本书里面对于如果删除一个innodb数据库和新建立一个新的innodb数据库没有详细的语句讲解, 你把我要使用的语句直接写出来, 可以吗?(我只差这一步,就可以发表项目了)
      

  4.   

    我的数据库名字叫做 pdms 我在线等
      

  5.   

    呵呵,
    mysql4.1.0中文参考手册,译者: 犬犬(心帆), 
    那只是一个 语言参考,我并没有时间全部翻译,:)
    与苦丁兄正合计完整翻译一个呢!!1: 
    是的,你应该将 InnoDB 数据库移除后,再导入,由于你的 SQL 文件中并没有 CREATE DATABASE 这一条语句,
    所以现在你在另一台计算机中进行数据恢复时是一定会出错的mysqldump 中有这么一个参数-n, --no-create-db 
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; will not be put in the output. The above line will be added otherwise, if a --databases or --all-databases option was given. 呵呵,我想一定是你加上了,
    所以你的 SQL 文件中并没有 CREATE DATABASE 这一条语句
    解决办法,知道了吧,
    要么在执行 mysqldump  时别加上  -n
    要么在生成的 SQL 文件中自行添加一句-- MySQL dump 8.22
    --
    -- Host: localhost    Database: pdms
    ---------------------------------------------------------
    -- Server version 3.23.55-nt
    -- 建立数据库,    就是这一句啦!!!!!!!!!!!
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;
    --
    -- Table structure for table 't_alarm'
    --CREATE TABLE t_alarm (
      alarm_num int(11) NOT NULL auto_increment,
      alarm_facility_no int(11) NOT NULL default '0',
      alarm_time datetime default NULL,
      alarm_type smallint(6) default NULL,
      alarm_state varchar(255) default NULL,
      alarm_cancle_flag smallint(6) default NULL,
      alarm_cancle_time datetime default NULL,
      alarm_confirm_flag smallint(6) default NULL,
      alarm_confirm_time datetime default NULL,
      user_id varchar(30) NOT NULL default '',
      client_ip varchar(15) default '',
      PRIMARY KEY  (alarm_num)
    ) TYPE=InnoDB;
      

  6.   

    普通的数据库,我把旧的数据库移除的话, 只要把那个目录删除就可以了.那么innoDB, 我把旧的数据库移除,怎么操作呢? 也是这样删除吗? 谢谢
      

  7.   

    我把贴子加了9分, 穷人的难受, 唉;我没有在mysqldump中加入 -n, --no-create-db 参数, 这是个默认的参数吗?
      

  8.   

    对于 InnoDB 数据库,为了移除它,你不能简单地将相对应的数据库文件夹移除
    你必须使用
        DROP DATABASE    指令!!!!!!!!!!!!!!!!!注意:
    在 <= 3.23.43 的 InnoDB 中,在对 InnoDB 表调用 DROP DATABASE 之前,必须调用 DROP TABLE 来移除(drop) 个体的 InnoDB 表。这个限制在 >= 3.23.44 的版本中不再存在。不知道是不是这个原因呢??:)
    你可以下载我翻译的  InnoDB 表参考手册 
    也可以去 http://www.innodb.com/ibman.html
      

  9.   

    我是这样的,1. 用mysqldump导出数据到: d:\pdms\backdebug\0724.ful;
    2. 删除原来数据库(用删除目录的方式, 和用工具视图DROP DATABASE的方式都试过);
    3. 在工具视图里面用: CREATE DATABASE pdms建立我的数据库;(这一步不能省,否则下面的语句会报找不到数据库的错误;
    4. 在dos界面上使用: mysql -u root -proot pdms < d:\pdms\backdebug\0724.ful按以上四个步骤执行,是: cannot create table (error:121)
    第四步我改用,把d:\pdms\backdebug\0724.ful中的全部SQL语句复制到工具视图里面执行,也不成功
      

  10.   

    有执行过 USE pdms; 吧
      

  11.   

    http://www.innodb.com/ibman.html那个网页是英文的~~@!
    会不会是我的mysqldump输出的文件名的扩展名有问题?
    我现在是假设原数据库坏掉, 我想把它删除再恢复;我的 my.ini文件如下(注:其中的两句
    default-character-set=gbk
    innodb_data_file_path = ibdata1:10M:autoextend
    是我当初开始开发的时候,CSDN上教我写进去的, 当时有了这两句,就解决了开发时遇到的MYSQL问题)***********************
    my.ini
    ***********************#This File was made using the WinMySQLAdmin 1.4 Tool
    #2003-6-18 16:50:42#Uncomment or Add only the keys that you know how works.
    #Read the MySQL Manual for instructions[mysqld]
    basedir=C:/mysql
    #bind-address=192.100.0.64
    datadir=C:/mysql/data
    #language=C:/mysql/share/your language directory
    #slow query log#=
    #tmpdir#=
    #port=3306
    #set-variable=key_buffer=16Mdefault-character-set=gbk
    innodb_data_file_path = ibdata1:10M:autoextend[WinMySQLadmin]
    Server=C:/mysql/bin/mysqld-nt.exe
    user=root
    password=root
      

  12.   

    use pdms?mysql -u root ......这个语句应该是在dos提示符下,还是在mysql>提示符下运行??我的mysqldump是在DOS提示符下运行的呀
      

  13.   

    这个问题先不要急, 我一定是钻入了死胡同;肯定还是我删除数据库引起的,还没有用drop table引起的
      

  14.   

    -- MySQL dump 8.22
    --
    -- Host: localhost    Database: pdms
    ---------------------------------------------------------
    -- Server version 3.23.55-nt
    -- 建立数据库,    就是这一句啦!!!!!!!!!!!CREATE DATABASE /*!32312 IF NOT EXISTS*/ pdms;-- 设置当前数据库USE pdms;--
    -- Table structure for table 't_alarm'
    --CREATE TABLE t_alarm (
      alarm_num int(11) NOT NULL auto_increment,
      alarm_facility_no int(11) NOT NULL default '0',
      alarm_time datetime default NULL,
      alarm_type smallint(6) default NULL,
      alarm_state varchar(255) default NULL,
      alarm_cancle_flag smallint(6) default NULL,
      alarm_cancle_time datetime default NULL,
      alarm_confirm_flag smallint(6) default NULL,
      alarm_confirm_time datetime default NULL,
      user_id varchar(30) NOT NULL default '',
      client_ip varchar(15) default '',
      PRIMARY KEY  (alarm_num)
    ) TYPE=InnoDB;
      

  15.   

    由于我用DOS命令删除数据库,(应该用drop database), 并重启MYSQL服务,引起MYSQL混乱;在这种情况下,如果重装MYSQL是当然可以的;实际上,我没有重装,我只是再DROP DATABASE 再CREATE DATABASE, 最后用MYSQL 导入数据.