我想导入一个包含由 , 分隔的数据的文本文件。我阅读了大多数人使用的几个来源,“LOAD DATA INFILE”。所以,我认为它对我也有用。
但是当我这样做时,我得到了这个权限错误。我运行了这个命令,这是我得到的:
LOAD DATA INFILE '/public_html/nyccrash.txt' INTO TABLE nyccrash;
但它给了我这个错误:
ERROR 1045(28000): Access denied for user 'username'@'%' (using password: YES)
我在其他一些线程上读到,我所要做的就是包含完整的文件路径,我这样做了,但仍然没有用。
是否有另一种方法可以将文本文件导入到我数据库中的表中?使用 SQL 或 PHP。
编辑:
我发现我可以使用这个命令:
<?php
$row = 1;
$handle = fopen("nyccrash.txt", "r");
echo("<table>");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
echo("<tr>\r\n");
foreach ($data as $index=>$val) {
echo("\t<td>$val</td>\r\n");
}
echo("</tr>\r\n");
}
echo("</table>");
fclose($handle);
?>
这让我可以读取数据并创建表格并打印出来。在使用上述方法收集数据后,我还可以使用 INSERT INTO table sql 命令,但我不确定如何将值插入表中。也就是说,遍历要插入的值。我在 txt 文件中的数据不包含所包含内容的属性或标题。所以...我对如何将数据排序到正确的列中有点困惑。
最佳答案
为了通过LOAD DATA LOCAL INFILE
加载数据,你需要两件事:
- FILE privilege .让 super 用户运行
GRANT FILE ON *.* TO 'username'@'%';
。 - 设置local_infile在
my.cnf
中为 1。为避免必须重新启动 mysql,让 super 用户运行SET GLOBAL local_infile=1;
。
警告:这两件事都将被视为安全漏洞。
关于php - 加载文件中的数据给我一个访问被拒绝的权限错误。我还能如何将文本文件导入数据库中的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16649966/