提问人:AlexM 提问时间:11/17/2023 最后编辑:Bill KarwinAlexM 更新时间:11/18/2023 访问量:26
无法使用 DATA DIRECTORY 子句创建外部数据库表
Cannot create external database table with the DATA DIRECTORY clause
问:
我想在标准数据目录之外的外部文件中创建数据库表。
以下作品:
create table eh_extern (c1 integer) engine=innodb data directory = '/tmp';
我创建了我的主目录的测试子目录,并将其权限设置为 777,将其所有者设置为 mysql:mysql
目录权限包括:
drwxrwxrwx 2 mysql mysql 4096 Nov 17 09:55 test
以下方法不起作用:
create table eh_extern (c1 integer) engine=innodb data directory = '/home/tx-team/test';
错误是:
Can't create table
eheh_extern.
(errno: 168 "Unknown (generic) error from engine")
syslog 中的错误如下:
'Nov 17 09:56:39 txteam-PD14RI mariadbd[1149]: 2023-11-17 9:56:39 75 [错误] InnoDB:文件操作中的操作系统错误编号 13。
11 月 17 日 09:56:39 txteam-PD14RI mariadbd[1149]: 2023-11-17 9:56:39 75 [错误] InnoDB:该错误意味着 mariadbd 没有该目录的访问权限。 `
我能做些什么来防止错误?
操作系统是:Linux 5.15.0-88-generic (Ubuntu),服务器是:10.6.12-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
答:
Systemd 启动的服务无权访问 /home 目录。
systemctl 编辑 mariadb.service 并添加
[Service]
ProtectHome=false
参考: KB systemd
评论
systemctl daemon-reload
systemctl edit
评论