MariaDB CONNECT引擎读取外部文件
MariaDB CONNECT engine to read external file
我想使用 CONNECT 引擎将外部文件读入 MariaDB。但是,当尝试从文件中读取时,我收到一条错误消息:
MariaDB [test]> create table test ( name varchar(100), team varchar(100) ) engine=CONNECT table_type=CSV file_name='/tmp/data.csv' header=1 sep_char=',' quoted=0;
Query OK, 0 rows affected (0.24 sec)
MariaDB [test]> select * from test;
ERROR 1296 (HY000): Got error 174 'Open() error 13 on /tmp/data.csv: Permission denied' from CONNECT
检查文件系统权限给我:
divingt@grisu ~ $ ls -l /tmp/data.csv
-rw-rw-rw- 1 divingt divingt 1658 Dec 31 13:59 /tmp/data.csv
所以每个人都应该能够读取和写入文件。
同样在 MYSQL 中,权限允许所有内容:
MariaDB [test]> SHOW GRANTS;
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
我运行一个LinuxMint系统。
非常感谢您的帮助。
原来是apparmor
阻止了mysqld
读取文件的原因。禁用它(或更改权限)解决了问题。
我想使用 CONNECT 引擎将外部文件读入 MariaDB。但是,当尝试从文件中读取时,我收到一条错误消息:
MariaDB [test]> create table test ( name varchar(100), team varchar(100) ) engine=CONNECT table_type=CSV file_name='/tmp/data.csv' header=1 sep_char=',' quoted=0;
Query OK, 0 rows affected (0.24 sec)
MariaDB [test]> select * from test;
ERROR 1296 (HY000): Got error 174 'Open() error 13 on /tmp/data.csv: Permission denied' from CONNECT
检查文件系统权限给我:
divingt@grisu ~ $ ls -l /tmp/data.csv
-rw-rw-rw- 1 divingt divingt 1658 Dec 31 13:59 /tmp/data.csv
所以每个人都应该能够读取和写入文件。
同样在 MYSQL 中,权限允许所有内容:
MariaDB [test]> SHOW GRANTS;
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
我运行一个LinuxMint系统。
非常感谢您的帮助。
原来是apparmor
阻止了mysqld
读取文件的原因。禁用它(或更改权限)解决了问题。