我已经搜索并找到了这篇文章(http://stackoverflow.com/questions/1814297/cant-load-file-data-in-the-mysql-directory),但它不适合我。替代LOAD_FILE()函数?
我是联合国的Ubuntu 12.04和MySQL的版本是5.5.22-0ubuntu1
我已经登录到MySQL作为根等补助都应该没关系:
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for [email protected] |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
我试图插入一些数据从一个文本文件到一个MySQL数据库和LOAD_FILE
函数似乎不能正常工作
我创建了一个测试文件,权限为777并复制到安装的根目录(我尝试将所有者/组更改为root:根和MySQL:MySQL和仍然没有好):
mysql> select load_file('/test.txt');
+------------------------+
| load_file('/test.txt') |
+------------------------+
| NULL |
+------------------------+
1 row in set (0.00 sec)
但如果我试试这个:
mysql> select load_file('/etc/hosts');
它工作正常。如果我将测试文件复制到/etc
中,它仍会失败。
有没有人看过这个或者可以指向我另一种方式加载到数据库?
'secure_file_priv'为空。我在本地运行并使用完整路径并且可读。测试文件的大小要小于'/ etc/hosts',所以以上所有内容都应该没问题。它不是SQL语句,所以也不起作用。它基本上是一个文本文件中的大量数字,它们被发送并且在测试步骤中接收到类似的数据。 – Firedragon
你确定这里的路? 'select load_file('/ test.txt');'这不是完整路径,除非文件实际位于'/ test.txt' –
文件被复制到那里。我尝试过'/ home/me/test.txt'这样的各种路径,它不起作用。 – Firedragon