Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql

來源:互聯網
上載者:User

標籤:mysql 1146


錯誤ERROR Table ‘barfoo_datacenter_config.parttemplates‘ doesn‘t exist;


650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/70/4D/wKioL1W18JPSqwf-AAJQ7MimIUo972.jpg" title="QQ圖片20150727163429.png" alt="wKioL1W18JPSqwf-AAJQ7MimIUo972.jpg" />

問題解釋:

1、發生該錯誤的情形。我是將別人的資料庫目錄下的data檔案夾直接複製過來的,裡面有三個資料庫mysql、test和barfoo_datacenter_config,主要想要barfoo_datacenter_config資料庫(是拷貝,不是備份),而且barfoo_datacenter_config是使用innodb作為儲存引擎的,這兩方面綜合起來就導致了1146這個錯誤(Table ‘barfoo_datacenter_config.parttemplates‘ doesn‘t exist)。 

      

2、因為要使用innodb做儲存引擎,所以要對my.ini檔案進行相應的修改。在my.ini檔案中,你可以找到關於innodb的相關設定,但是被注釋掉了。因為mysql5.1版本後,innodb不在作為預設的設定了。首先將skip-innodb注釋掉,然後需要設定正確innodb的相關參數。   

    

3、採用innodb儲存引擎,關係到data檔案夾下面的一些檔案:ib_logfile0、ib_logfile1和ibdata1,另外還有一個就是資料庫名下面的眾多.frm檔案。先對這幾個檔案作簡要介紹。     

ib_logfile0和ib_logfile1是關於資料庫的一些記錄檔;     .frm檔案是資料庫中很多的表的結構描述檔案;      ibdata1檔案時資料庫的真實資料存放檔案。

 到mysql目錄下的bin檔案夾下運行命令:     

mysql --console


此時,你會發現很多的錯誤提示,該命令就是對環境進行測試的。如果你不理會這些錯誤,進入資料庫,用show tables;命令探索資料庫表存在,但是執行select等操作就會出現1146:Table doesn’t exist這個錯誤了。     

其實這是由ibdata1檔案的錯誤引起的,這個應該在記錄檔ib_logfile0和ib_logfile1中找到,於是把ibdata1檔案刪除掉,再次執行該命令,發現沒有提示錯誤了,但進入資料庫以後,操作仍就導致1146這個錯誤。後來仔細一下,也是,你說你把ibdata1檔案刪除,相當於把資料庫的真實資料刪除了,這時你就會問為什麼資料庫表還存在呢,都能看到,因為資料庫表結構的描述是在.frm的眾多檔案中的,所以能通過show tables;查看到。 那麼問題就來了:ibdata1檔案是從別人那裡拷貝過來的,為什麼在那邊能用,到我這邊就不能用了呢?這就是最核心的問題所在,因為mysql是採用緩衝方式來將資料寫入到ibdata1檔案中的,這正是fflush()函數存在的理由。因此當別人的mysql在運行時,你對data檔案夾進行拷貝,即對ibdata1進行拷貝肯定會導致該檔案中的資料出錯的。    


解決方案:

首先在自己的mysql下,建立一個你即將要拷貝的資料庫(資料庫名要一樣,裡面不需要建表),然後將所有的.frm檔案拷貝到你建的資料庫檔案夾下,再次進入mysql,用show  tables查看錶是否已經建立起來了。然後停止你自己的mysql服務,發現在data檔案下面已經有ib_logfile0、ib_logfile1和ibdata1三個檔案了,之後停掉別人的mysql服務,只將ibdata1檔案拷貝過來進行覆蓋,最後啟動你自己的mysql服務就可以對資料庫進行正常操作了

本文出自 “廣州、雨人” 部落格,請務必保留此出處http://liulihuan.blog.51cto.com/8018739/1678833

Table 'barfoo_datacenter_config.parttemplates' doesn't exist------Mysql

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.