程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL:Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.解決辦法,createtablespace

MySQL:Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.解決辦法,createtablespace

編輯:MySQL綜合教程

MySQL:Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.解決辦法,createtablespace


今天在navicat上操作mysql數據庫表,突然沒有響應了。隨後重啟,mysql服務也終止了。隨後啟動服務,檢查表,發現一張表卡沒了,就重新添加一張表。報了一個錯:

Error : Tablespace for table '`database`.`temp`' exists. Please DISCARD the tablespace before IMPORT.

可是show  databases看了一下根本就沒有這張表啊。網上查了半天都沒有找到類似的情況,花了好幾個小時。

最後終於找到解決辦法如下:

1、關閉所有mysql操作,停止mysql服務。

2、找到安裝目錄下的數據庫文件,應該在你安裝目錄下的data文件夾下,然後打開你對應的數據庫名的文件夾。找到那個表對應的文件,還有損壞的文件,一並刪除。

數據庫中的文件名,應該是和你的表名一一對應的,一個表,兩個文件,一個數據文件,一個是日志文件,除了這個還有一個“db.opt”文件不要刪除。其他的亂碼的文件,和原來你出錯的文件全部刪除。

3、完了以後重新啟動mysql服務,重新添加那個同樣名字的表就可以添加成功了。


編寫一個程序,用於實現文件的備份

注意本腳本是應用於archive log模式下的,另外數據庫的用戶名密碼,自己在腳本裡改一下,腳本是帶參數的,參數是備份的目標目錄,注意要有寫權限。#!/bin/sh
mypath=$1
if [ -z $mypath ] ; then
echo 'Please Use This Command Like ./backup /u01/backup'
else
if [ -d $mypath ] ; then
ORACLE_SID=dzzd; export ORACLE_SID
ORAENV_ASK=NO; export ORAENV_ASK
rm -Rf aa.txt
sqlplus -s "system/oracle9i"<<EOF
set head off
set feedback off
spool aa.txt
select tablespace_name from dba_tablespaces;
spool off
EXIT
EOF
for spacename in `cat aa.txt`
do
echo $spacename |grep "^TEMP"
if [ "$?" -eq "0" ]
then
echo TEMP no need backup else
else
echo begin backup $spacename
sqlplus -s system/oracle9i<<SETSTA
alter tablespace $spacename begin backup;
EXIT
SETSTA
rm -Rf bb.txt
sqlplus -s system/oracle9i<<DATAFILE1
set head off
set feedback off
spool bb.txt
SELECT 'cp '||file_name||' $mypath'||SUBSTR(FILE_NAME,INSTR(FILE_NAME,'/',-1,1))
FROM dba_data_files where tablespace_name=trim('$spacename');
spool off
EXIT
DATAFILE1
sh bb.txt
sqlplus -s system/oracle9i<<SETSTA
alter tablespace $spacename end backup;
EXIT
SETSTA
echo end backup $spacename
fi
done
else
echo "Please Input a Right Direction"
fi
fi
mhere 回復於:2003-11-07 15:07:05
好!
能不能有一個純文本的附件?
txfy 回復於:2003-11-07 15:18:13
不能上傳文本文件,把內容沾出來放到backup文件中,chmod 755 backup, 就可以運行了 ./backup /u01
steal 回復於:2003-11-07 15:27:42......余下全文>>
 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved