我想在csv文件中输出表数据。
$query = new QUERY();
$clause = "SELECT * FROM $table WHERE company_id='$company_id'
INTO OUTFILE 'file_name.csv'
FIELDS ENCLOSED BY '\"' TERMINATED BY ';' ESCAPED BY '\"'
LINES TERMINATED BY '\r\n'";
$query->run($clause);
错误:
exception 'PDOException' with message 'SQLSTATE[28000]:
Invalid authorization specification: 1045 Access denied for user
'my_username'@'%' (using password: YES)' in
D:\home\site\wwwroot\application\libraries\query.php:426
这有什么问题?如何在csv文件中导入数据并将其放在服务器上?
修改
Stack trace:
#0 D:\home\site\wwwroot\application\libraries\query.php(426): PDOStatement->execute(Array)
#1 D:\home\site\wwwroot\application\libraries\query.php(470): QUERY->RUN_QUERY('SELECT * FROM a...', Array)
#2 D:\home\site\wwwroot\application\controllers\manage_clients.php(116): QUERY->run('SELECT * FROM a...')
#3 [internal function]: Manage_clients->delete_company()
#4 D:\home\site\wwwroot\system\core\CodeIgniter.php(359): call_user_func_array(Array, Array)
#5 D:\home\site\wwwroot\index.php(203): require_once('D:\\home\\site\\ww...')
#6 {main}
答案 0 :(得分:0)
显然,
Invalid authorization, Access denied for user 'my_username'@'%'
请检查您的凭据,即您的usernam和pwd是否匹配,以及是否从您使用的IP接受这两种凭据。
编辑:如果所有其他查询运行正常,也许它们来自其他来源,如另一台服务器?我想到的一件事是,您可能没有权限编写outfile本身 - 但我想知道是否会有另一条错误消息。也许您的用户无权使用OUTFILE命令?
答案 1 :(得分:0)
确保您的用户拥有正确的权限。运行这些查询以设置权限,然后运行第二个查询以向用户授予文件。授予所有权限不会提供文件,因此您需要单独执行此操作。
grant all privileges on your_database.* to 'asdfsdf'@'localhost' identified by 'your_password';
flush privileges;
grant file on *.* to 'asdfsdf'@'localhost';
您可以运行show grants;
以查看已授予用户的内容。
另一种方法是:
service mysql restart --skip-networking --skip-grant-tables
mysql <enter>
update mysql.user set File_priv = 'Y' where user='gs' and host='localhost';
exit
service mysql restart