解決ERROR 1030 (HY000): Got error 168 from storage engine apparmor

姚遠ACE發表於2022-06-13

MySQL建表時指定另外一個目錄,結果出錯:

mysql>  create table t1 (id int primary key,n varchar(10)) data directory='/home/mysql/data';
ERROR 1030 (HY000): Got error 168 from storage engine

在error log中有這樣的提示:

2020-01-16T02:29:45.360317Z 2 [ERROR] InnoDB: Operating system error number 13 in a file operation.
2020-01-16T02:29:45.360400Z 2 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory.

以為是mysqld的許可權不對,改了也沒有用:

mysql> system sudo -u mysql touch  /home/mysql/data/a
mysql>  create table t1 (id int primary key,n varchar(10)) data directory='/home/mysql/data';
ERROR 1030 (HY000): Got error 168 from storage engine

到處搜尋,發現是apparmor惹得禍,

# aa-status| grep mysql
   /usr/sbin/mysqld
   /usr/sbin/mysqld (15007)

修改配置檔案把相應的目錄加上即可: /etc/apparmor.d/usr.sbin.mysqld 

或者disable mysqld的

sudo ln -s /etc/apparmor.d/usr.sbin.mysqld  /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

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




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70018393/viewspace-2900232/,如需轉載,請註明出處,否則將追究法律責任。

相關文章