MySQL中報(bào)錯(cuò):Can’t find file: ‘./mysql/plugin.frm’的解決方法
發(fā)現(xiàn)問題
最近在工作中發(fā)現(xiàn)了一個(gè)問題,這個(gè)問題就是MySQL的磁盤滿了,將數(shù)據(jù)庫目錄data移動(dòng)到/data3目錄,/etc/my.cnf里面也修改了相應(yīng)的datadir目錄,權(quán)限也賦予了,但是service mysql start;的時(shí)候報(bào)錯(cuò),下面話不多說了,來一起看看詳細(xì)的解決方法吧。
error log顯示如下:
2017-09-15 16:01:01 2420 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 2017-09-15 16:01:01 2420 [Note] Plugin 'FEDERATED' is disabled. ^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied) 2017-09-15 16:01:01 2420 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 2017-09-15 16:01:01 2420 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-09-15 16:01:01 2420 [Note] InnoDB: The InnoDB memory heap is disabled 2017-09-15 16:01:01 2420 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-09-15 16:01:01 2420 [Note] InnoDB: Memory barrier is not used 2017-09-15 16:01:01 2420 [Note] InnoDB: Compressed tables use zlib 1.2.8 2017-09-15 16:01:01 2420 [Note] InnoDB: Using Linux native AIO 2017-09-15 16:01:01 2420 [Note] InnoDB: Using CPU crc32 instructions 2017-09-15 16:01:01 2420 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-09-15 16:01:02 2420 [Note] InnoDB: Completed initialization of buffer pool 2017-09-15 16:01:02 2420 [ERROR] InnoDB: ./ibdata1 can't be opened in read-write mode 2017-09-15 16:01:02 2420 [ERROR] InnoDB: The system tablespace must be writable! 2017-09-15 16:01:02 2420 [ERROR] Plugin 'InnoDB' init function returned error. 2017-09-15 16:01:02 2420 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2017-09-15 16:01:02 2420 [ERROR] Unknown/unsupported storage engine: InnoDB 2017-09-15 16:01:02 2420 [ERROR] Aborting
去先檢查plugin.frm權(quán)限,frm是MySQL表結(jié)構(gòu)定義文件,通常frm文件是不會(huì)損壞的,但是如果出現(xiàn)特殊情況出現(xiàn)frm文件損壞也不要放棄希望,當(dāng)修復(fù)MyISAM和InnoDB表時(shí),MySQL服務(wù)會(huì)首先去調(diào)用frm文件,所以我們只能通過修復(fù)frm文件進(jìn)行后面的數(shù)據(jù)恢復(fù)。
然后我們發(fā)現(xiàn)plugin.frm有權(quán)限,也是mysql屬主:
root@hutaojie-1-pdd-sh:/data1/mysql/mysql# ll plugin.* -rwxrwxrwx 1 mysql mysql 8586 Mar 6 2016 plugin.frm* -rwxrwx--x 1 mysql mysql 116 Mar 6 2016 plugin.MYD* -rwxrwx--x 1 mysql mysql 2048 Mar 6 2016 plugin.MYI* root@hutaojie-1-pdd-sh:/data1/mysql/mysql#
google之后發(fā)現(xiàn),原來問題在os這里,ubatu的mysql通過yum安裝或者rpm安裝的時(shí)候,會(huì)建一個(gè)/etc/apparmor.d/usr.sbin.mysqld 文件,如果數(shù)據(jù)目錄不在這里面,則會(huì)報(bào)錯(cuò),
/usr/sbin/mysqld: Can't find file: ‘./mysql/plugin.frm' (errno: 13 - Permission denied)
解決方法
所以解決辦法是在里面加上新的datadir目錄。
root@huayuan:/var/lib# vim /etc/apparmor.d/usr.sbin.mysqld # vim:syntax=apparmor # Last Modified: Tue Jun 19 17:37:30 2007 #include <tunables/global> /usr/sbin/mysqld { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> #include <abstractions/mysql> #include <abstractions/winbind> capability dac_override, capability sys_resource, capability setgid, capability setuid, network tcp, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock w, /sys/devices/system/cpu/ r, #.........這里面寫新的datadir目錄,寫2行,一行r,一行rwk。 /data3/mysql/ r, /data3/mysql/** rwk, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.mysqld> }
然后重啟mysql實(shí)例,ok,問題解決。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
MySQL中的distinct與group by比較使用方法
今天無意中聽到有同事在討論,distinct和group by有什么區(qū)別,下面這篇文章主要給大家介紹了關(guān)于MySQL去重中distinct和group by區(qū)別的相關(guān)資料,需要的朋友可以參考下2023-03-03Java將excel中的數(shù)據(jù)導(dǎo)入到mysql中
這篇文章主要介紹了Java將excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以參考借鑒2018-05-05為什么MySQL數(shù)據(jù)庫索引選擇使用B+樹?
今天小編就為大家分享一篇關(guān)于為什么MySQL數(shù)據(jù)庫索引選擇使用B+樹?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03Navicat中新建MySQL數(shù)據(jù)庫與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫詳細(xì)操作方法
Navicat是一套快速、可靠并價(jià)格相當(dāng)便宜的數(shù)據(jù)庫管理工具,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設(shè),這篇文章主要給大家介紹了關(guān)于Navicat中新建MySQL數(shù)據(jù)庫與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫詳細(xì)操作的相關(guān)資料,需要的朋友可以參考下2023-11-11MySQL數(shù)據(jù)庫8——數(shù)據(jù)庫中函數(shù)的應(yīng)用詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫8——數(shù)據(jù)庫中函數(shù)的應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03MySQL數(shù)據(jù)文件存儲(chǔ)位置的查看方法
這篇文章主要為大家詳細(xì)介紹了MySQL數(shù)據(jù)文件存儲(chǔ)位置的查看方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10詳解MySQL數(shù)據(jù)庫設(shè)置主從同步的方法
最近一直在研究mysql的主從同步問題,現(xiàn)在網(wǎng)上也有很多資料,現(xiàn)在感覺寫的都很好(當(dāng)初感覺寫的很差,是因?yàn)樽约旱念I(lǐng)悟較差),于是想跟大家分享一下自己配置的整個(gè)過程和經(jīng)驗(yàn)。有需要的朋友歐美可以參考借鑒,感興趣的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11