Sha*_*ock 70 mysql mysql-error-1045 into-outfile
有任何想法吗?
SELECT * INTO OUTFILE '/home/myacnt/docs/mysqlCSVtest.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '*'
LINES TERMINATED BY '\n'
FROM tbl_property
WHERE managerGroupID = {$managerGroupID}
Run Code Online (Sandbox Code Playgroud)
错误:
Access denied for user 'asdfsdf'@'localhost' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
Pab*_*ruz 111
尝试执行此SQL命令:
> grant all privileges
on YOUR_DATABASE.*
to 'asdfsdf'@'localhost'
identified by 'your_password';
> flush privileges;
Run Code Online (Sandbox Code Playgroud)
您似乎遇到连接数据库而不写入您提到的文件夹的问题.
此外,请确保您已授予FILE
用户'asdfsdf'@'localhost'
.
> GRANT FILE ON *.* TO 'asdfsdf'@'localhost';
Run Code Online (Sandbox Code Playgroud)
小智 45
老实说,我没有费心去处理补助金,即使没有特权,这也很有效:
echo "select * from employee" | mysql --host=HOST --port=PORT --user=UserName --password=Password DATABASE.SCHEMA > output.txt
Run Code Online (Sandbox Code Playgroud)
e18*_*18r 19
正如@fijaaron所说,
GRANT ALL
并不意味着 GRANT FILE
GRANT FILE
只适用于 *.*
那样做
GRANT FILE ON *.* TO user;
Run Code Online (Sandbox Code Playgroud)
由于 cP/WHM 取消了在 PHPMyAdmin 中以 root 身份修改用户权限的能力,因此您必须使用命令行来:
mysql> GRANT FILE ON *.* TO 'user'@'localhost';
Run Code Online (Sandbox Code Playgroud)
第 2 步是允许该用户将文件转储到特定文件夹中。有几种方法可以做到这一点,但我最终将一个文件夹放入:
/home/user/tmp/db
Run Code Online (Sandbox Code Playgroud)
和
chown mysql:mysql /home/user/tmp/db
Run Code Online (Sandbox Code Playgroud)
这允许 mysql 用户写入该文件。正如之前的发帖者所说,您也可以使用 MySQL 临时文件夹,我认为这并不重要,但您绝对不想将其设置为 0777 权限(世界可写),除非您希望全世界都看到您的数据。如果您想冲洗重复该过程,则存在潜在问题,因为INTO OUTFILE
如果文件存在,则该过程将不起作用。如果您的文件归其他用户所有,那么仅仅尝试是unlink($file)
行不通的。如果您像我一样(对 0777 感到偏执),那么您可以使用以下方法设置目标目录:
chmod($dir,0777)
Run Code Online (Sandbox Code Playgroud)
在执行 SQL 命令之前,然后
chmod($dir,0755)
Run Code Online (Sandbox Code Playgroud)
紧接着,然后unlink(file)
删除该文件。这使其全部在您的 Web 用户下运行,无需调用 mysql 用户。
归档时间: |
|
查看次数: |
136616 次 |
最近记录: |