有什么想法吗?
SELECT * INTO OUTFILE '/home/myacnt/docs/mysqlCSVtest.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '*'
LINES TERMINATED BY '\n'
FROM tbl_property
WHERE managerGroupID = {$managerGroupID}
错误:
Access denied for user 'asdfsdf'@'localhost' (using password: YES)
发布于 2011-05-23 07:12:14
尝试执行此SQL命令:
> grant all privileges
on YOUR_DATABASE.*
to 'asdfsdf'@'localhost'
identified by 'your_password';
> flush privileges;
似乎您在连接到数据库时遇到了问题,并且没有写入到您提到的文件夹。
此外,请确保您已将FILE
授予用户'asdfsdf'@'localhost'
。
> GRANT FILE ON *.* TO 'asdfsdf'@'localhost';
发布于 2013-06-08 02:14:25
老实说,我没有费心去处理这些拨款,即使没有特权,这也能正常工作:
echo "select * from employee" | mysql --host=HOST --port=PORT --user=UserName --password=Password DATABASE.SCHEMA > output.txt
发布于 2017-09-08 19:53:41
由于cP/WHM取消了在PHPMyAdmin中以超级用户身份修改用户权限的功能,因此您必须使用命令行执行以下操作:
mysql> GRANT FILE ON *.* TO 'user'@'localhost';
第2步是允许用户转储特定文件夹中文件。有几种方法可以做到这一点,但我最终在其中放置了一个文件夹:
/home/user/tmp/db
和
chown mysql:mysql /home/user/tmp/db
这允许mysql用户写入文件。正如之前的帖子所说,你也可以使用MySQL临时文件夹,我不认为这真的很重要,但除非你想让世界看到你的数据,否则你肯定不想让它拥有0777权限(全局可写)。如果你想要清洗,那就有一个潜在的问题--重复这个过程,因为如果文件存在,INTO OUTFILE
就不会工作。如果你的文件属于不同的用户,那么仅仅尝试unlink($file)
是行不通的。如果你像我一样(大约是0777),那么你可以用以下命令设置你的目标目录:
chmod($dir,0777)
在执行SQL命令之前,然后
chmod($dir,0755)
紧接着,按unlink(file)
删除文件。这使它在您的web用户下运行,而不需要调用mysql用户。
https://stackoverflow.com/questions/6091427
复制相似问题