修改mysql儲存引擎備份資料庫報錯及解決方案

來源:互聯網
上載者:User

標籤:修改   儲存   引擎   

備份資料庫報錯

原因:由於監控伺服器最近cpu負載比較高。(cpu4核心,負載2.7左右)感覺很奇怪,因為別的伺服器mysql佔用的資源並不多,因此我首先最佳化了資料庫的設定檔。cpu稍微下降了一點,但是沒有特別明顯的變化。

於是,從mysql的儲存引擎和日誌考慮,結果發現預設用的引擎是myisam。好吧。換成innodb,(由於事先我沒備份,就在設定檔修改了引擎,因為日誌除了二進位其他並沒有開啟。所以沒動它。重啟資料庫。


ok

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/7E/9E/wKioL1cF1tyTp3zbAABQBRmfhQY914.jpg" title="3.jpg" alt="wKioL1cF1tyTp3zbAABQBRmfhQY914.jpg" />早就聽說這兩個引擎,區別,看來效能差別真大啊!


好吧。備份資料庫吧!


使用備份全部資料庫時候

mysqldump: Got error: 23: Out of resourceswhen opening file‘./mysql/jchigr32.MYD‘ (Errcode: 24) when using LOCK TABLES

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/7E/A1/wKiom1cF1GXh_EzaAACYnTCrFic442.jpg" title="1.jpg" alt="wKiom1cF1GXh_EzaAACYnTCrFic442.jpg" />

原因

出現Outof resources when opening file ‘./xxx.MYD‘ (Errcode: 23)錯誤是

因為開啟的檔案數超過了my.cnf--open-files-limitopen-files-limit選項

無法在mysql命令列直接修改,必須在my.cnf中設定,最大值是65536

 

首先用ulimit-n命令查看下開啟檔案數限制:

預設是1024

解決

vim  /etc/my.cnf

open_files_limit=65536(最大)

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/7E/A1/wKiom1cF1IHgJ4qnAADP7McdZYE282.jpg" title="2.jpg" alt="wKiom1cF1IHgJ4qnAADP7McdZYE282.jpg" />


重啟mysql  ok



650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/7E/A1/wKiom1cF1JfR59WVAABnf1rNUno369.jpg" title="3.jpg" alt="wKiom1cF1JfR59WVAABnf1rNUno369.jpg" />

檢查

mysqlcheck -uroot -pxxx  mysql

Error    : Youcan‘t use locks with log tables.

Error    : Table‘mysql.tempmix‘ doesn‘t exist

status   :Operation failed

mysql.tempmix1

Error    : Table‘mysql.tempmix1‘ doesn‘t exist

status   :Operation failed

mysql.tempmix4

Error    : Table‘mysql.tempmix4‘ doesn‘t exist

status   :Operation failed

 

好吧!請教Google大神

使用LOCK TABLES時,mysqldump的表不存在

癥狀

MySQL資料庫轉儲失敗,錯誤:

mysqldump: Goterror: 1146: Table ‘<TABLENAME>‘ doesn‘t exist when using LOCK TABLES

原因

  1. 也許有人刪除並重新建立InnoDB資料檔案卻忘了從資料庫目錄中刪除InnoDB表的相應的.FRM檔案,或者有人移動.FRM檔案到另一個資料庫。 請與show tables

  2. 不正確的許可權和所有權上表檔案MySQL資料目錄

  3. 表已損壞

  4. 表中建立大寫

解析度

  1. 請與show tables ,如果表中未列出的舉動.frm從資料庫目錄檔案出來    

  2. 許可權和所有權在MySQL資料目錄表的檔案是不正確的,理想的所有者應該是MySQL使用者和使用權限設定為660。

  3. 修複表

  4. 設定lower_case_table_names

如果以上所有點都ok然後嘗試使用--skip-lock-tables參數用mysqldump 。


根據上面的思路,很快解決!


如果出現這種錯誤,建議單獨備份資料庫。



本文出自 “?唯一!” 部落格,請務必保留此出處http://renzhiyuan.blog.51cto.com/10433137/1761241

修改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.