

Linux環境、MariaDBでdatadir とは別のディレクトリにテーブル/データファイルを作成しようとしています。  
(CREATE TABLE .. DATA DIRECTORY 文を使用)  
mariadbdプロセスはmysqlユーザで実行されており、DATA DIRECTORY  
対象候補のディレクトリは、ls -lの結果が以下のようになっています。  
以下のようなSQLでテーブル作成を試みましたが、(A)のディレクトリは成功し、(B)は失敗しています。

SQL: CREATE TABLE t1 (c1 INT PRIMARY KEY) ENGINE=xxxx DATA DIRECTORY = 'yyyy';  
(A) drwx------ mysql mysql /mysqldata/ ->成功  
(B) drwx------ mysql mysql /home/mysql/data/ ->失敗(以下のエラー)  
ERROR 1 (HY000): Can't create/write to file '/home/mysql/data/t1.MYD'
(Errcode: 13 "Permission denied") # MyISAM  
ERROR 1005 (HY000): Can't create table `test`.`t1` (errno: 168 "Unknown
(generic) error from engine") # InnoDB  
エラーログには以下のようなメッセージが出力されました。(InnoDBの場合)  
[ERROR] InnoDB: Operating system error number 13 in a file operation.  
[ERROR] InnoDB: The error means mysqld does not have the access rights to the
directory.

(A)(B)のディスクは異なりますが、いずれも容量に余裕はあります。  
この成否を分けている要因はなんでしょうか?  
(B)の方にデータファイルを作成するためには、どのような設定が必要でしょうか?

OS: RHEL 7.9  
SELINUX: disabled  
MariaDB: 10.5.9

  * variables: 
    * have_symlink: YES
    * datadir: /var/lib/mysql/
    * innodb_file_per_table: ON

その他、回答にあたり必要な情報がありましたらコメントいただけますと幸いです。  
よろしくお願いいたします。


CC BY-SA 4.0
2023-09-21T11:07:44.173
96301
2023-09-21T11:07:44.173
59861
question
linux mariadb
MariaDB CREATE TABLE DATA DIRECTORY のエラー原因