久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

AppArmor導(dǎo)致datadir遷移無(wú)法啟動(dòng)或初始化失敗該怎么辦

共計(jì) 2214 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。

AppArmor 導(dǎo)致 datadir 遷移無(wú)法啟動(dòng)或初始化失敗該怎么辦,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

【問(wèn)題描述】:
行為:通過(guò) apt-get 在一臺(tái) ubuntu 的機(jī)子上新裝一個(gè) mysql 做本地日志存儲(chǔ),
由于默認(rèn) datadir 在 /var/lib/mysql 下,所以準(zhǔn)備重新初始化 datadir:

mysql_install_db –user=mysql –datadir=/data/mysql_data –basedir=/usr

報(bào)錯(cuò)如下:

160902 15:25:41 [Note] /usr/sbin/mysqld (mysqld 5.5.50-0ubuntu0.14.04.1) starting as process 25512 …

160902 15:25:41 [Warning] Can t create test file /data/mysql_data/10-8-20-62.lower-test

160902 15:25:41 [Warning] Can t create test file /data/mysql_data/10-8-20-62.lower-test

ERROR: 1005  Can t create table db (errno: 13)

160902 15:25:41 [ERROR] Aborting

160902 15:25:41 [Note] /usr/sbin/mysqld: Shutdown complete

Installation of system tables failed!  Examine the logs in

/data/mysql_data for more information.

給 /data/mysql_data 加了對(duì)應(yīng)的權(quán)限,再一次執(zhí)行,報(bào)同樣錯(cuò)。

于是干脆直接將 /var/lib/mysql 整個(gè)文件夾遷移到 /data/mysql_data 下,再啟動(dòng)服務(wù):
cp 過(guò)去之后,修改 /etc/mysql/my.cnf 中的 datadir 位置,然后 mysqld_safe 啟動(dòng),發(fā)現(xiàn)不能啟動(dòng):

mysqld_safe mysqld from pid file /data/mysql_data/mysqld.pid ended

查看錯(cuò)誤日志發(fā)現(xiàn)報(bào)錯(cuò)找不到 mysql schema 下的 plugin.frm 文件:

160902 15:26:51 [Note] Plugin FEDERATED is disabled.

/usr/sbin/mysqld: Can t find file: ./mysql/plugin.frm (errno: 13)

160902 15:26:51 [ERROR] Can t open the mysql.plugin table. Please run mysql_upgrade to create it.

再次確認(rèn)目錄及文件的權(quán)限,然后確認(rèn)文件的存在之后,啟動(dòng)依然失敗,報(bào)錯(cuò)不變。

【解決方案】:
然后想到 Ubuntu 和 CentOS 文件安全策略可能有一些不一樣,然后查到了這樣的東西:(P.S. 公司 DB server 都是部署在 CentOS 上的,這次安在 Ubuntu 是特例)

Ubuntu 下默認(rèn)安裝了并存在一個(gè) AppArmor 的服務(wù),這個(gè)服務(wù)是用于訪問(wèn)控制的。
在以 apt-get 安裝 mysql 時(shí),個(gè)人猜測(cè)可能在 AppArmor 的配置中限制了訪問(wèn)限制——
導(dǎo)致 mysqld_safe 與 mysqld 進(jìn)程無(wú)法讀寫新移植的 datadir 目錄中的文件,也同樣導(dǎo)致了 mysql_install_db 無(wú)法在對(duì)應(yīng)的 mysql schema 下創(chuàng)建文件。

解決方法很簡(jiǎn)單,通過(guò)編輯器打開(kāi)此文件,并重新讓 AppArmor 加載最新的配置即可:

vi /etc/apparmor.d/usr.sbin.mysqld

在該 usr.sbin.mysqld 配置文件中,注釋掉部分目錄(這些目錄是 my.cnf 中做了修改的):
因?yàn)槲以?my.cnf 中修改了 pid-file、socket、datadir、log_error,所以我對(duì)應(yīng)注釋掉了這些目錄:

#/var/log/mysql.log rw,

#/var/log/mysql.err rw,

#/var/lib/mysql/ r,

#/var/lib/mysql/** rwk,

#/var/log/mysql/ r,

#/var/log/mysql/* rw,

#/var/run/mysqld/mysqld.pid rw,

#/var/run/mysqld/mysqld.sock w,

#/run/mysqld/mysqld.pid rw,

當(dāng)然,也可以簡(jiǎn)單直接刪掉這些。

并緊接著在其下添加新的 datadir 目錄(注意以逗號(hào)做結(jié)束符)

/data/mysql_data rw,

最后讓 AppArmor 重新加載:

# /etc/init.d/apparmor reload

* Reloading AppArmor profiles

Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd

…done.

再次啟動(dòng) mysqld 即可成功。(當(dāng)然重新初始化 mysql_install_db 也是可以的了)

P.S. 當(dāng)然也可以粗暴地直接停掉 apparmor 服務(wù)。

看完上述內(nèi)容,你們掌握 AppArmor 導(dǎo)致 datadir 遷移無(wú)法啟動(dòng)或初始化失敗該怎么辦的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-19發(fā)表,共計(jì)2214字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 济阳县| 平遥县| 徐水县| 长葛市| 海晏县| 周至县| 行唐县| 七台河市| 阿尔山市| 余江县| 侯马市| 昭觉县| 获嘉县| 康平县| 萨迦县| 宜黄县| 聂荣县| 微山县| 平利县| 广饶县| 乐至县| 澄迈县| 阿拉善右旗| 永登县| 扬中市| 同江市| 闽清县| 遂溪县| 泸西县| 成安县| 广西| 凉山| 平山县| 新乐市| 县级市| 佳木斯市| 财经| 营山县| 波密县| 湘阴县| 珲春市|