このステートメントを試して、テーブルを別のディスクに配置しました。オペレーティングシステムはLinux Oracle 7で、ディレクトリのアクセス許可をchmod -vR 777
、ディスクディレクトリへの完全なアクセス権。 mysqlページから直接取得した次のステートメントを実行した後、このエラーが発生し続ける
CREATE TABLE t2 (c1 INT PRIMARY KEY) TABLESPACE = innodb_file_per_table
DATA DIRECTORY = '/home/egonzalez/Documentos';
エラー1030(HY000):ストレージエンジンからエラー168を取得しました
私の知る限り、mysqlがディレクトリにアクセスできないというアクセス許可の問題がありますが、ディレクトリのアクセス許可を変更した後、続行方法がわかりません。
そのデータディレクトリに.ibd
ファイルを含むテーブルを作成する場合は、次のようにします。
chown -R mysql:mysql /home/egonzalez/Documentos
次に、これを実行します
CREATE TABLE t2 (c1 INT PRIMARY KEY)
ENGINE=InnoDB DATA DIRECTORY = '/home/egonzalez/Documentos';
MySQL 5.7では、オプション innodb_file_per_table がデフォルトで有効になっています
そもそもエラーの理由は?
このように CREATE TABLESPACE
を実行する必要があります
mysql> CREATE TABLESPACE `ts1`
-> ADD DATAFILE '/home/egonzalez/Documentos/mytblspc.ibd'
-> ENGINE=INNODB;
Query OK, 0 rows affected (0.01 sec)
次に、任意のテーブルを作成して、1つのテーブルスペースに含めることができます。
CREATE TABLE t2 (c1 INT PRIMARY KEY) ENGINE=InnoDB TABLESPACE ts1;