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
use pdms?mysql -u root ......这个语句应该是在dos提示符下,还是在mysql>提示符下运行??我的mysqldump是在DOS提示符下运行的呀
这样并不代表建立了abcd数据库。还是老老实实建立abcd数据库吧。
所有的 InnoDB 表,只有表结构文件在 data 目录下,
其它的表数据\表索引文件都是放在 InnoDB 专用的数据文件中的:)
所以说,你通过建立文件夹来建立数据库是不行的,
这种方式只对其它的表类型管用!!对于 InnoDB 数据库,你必须使用 CREATE DATABASE SQL 语句来实现
这个姑且不管它了; 我一会儿加分, 但是我总共只能再加10(没有分了), 明天再加一次我接着请问:
1. 我的项目和数据库的使用过程中, 如果某天我用mysqldump备份了整个数据库, 第二天我就发现数据库出了问题,那么这个时候我怎么恢复呢? (如果我直接往回导数据, 会不会报table 已存在的错误, 是不是应该先把整个数据库删除, 然后才能够恢复?)2. 我用的是mysql4.1.0中文参考手册,译者: 犬犬(心帆), 我没有其它相关的书; 那本书里面对于如果删除一个innodb数据库和新建立一个新的innodb数据库没有详细的语句讲解, 你把我要使用的语句直接写出来, 可以吗?(我只差这一步,就可以发表项目了)
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;
你必须使用
DROP DATABASE 指令!!!!!!!!!!!!!!!!!注意:
在 <= 3.23.43 的 InnoDB 中,在对 InnoDB 表调用 DROP DATABASE 之前,必须调用 DROP TABLE 来移除(drop) 个体的 InnoDB 表。这个限制在 >= 3.23.44 的版本中不再存在。不知道是不是这个原因呢??:)
你可以下载我翻译的 InnoDB 表参考手册
也可以去 http://www.innodb.com/ibman.html
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语句复制到工具视图里面执行,也不成功
会不会是我的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
--
-- 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;