mysql中FILE权限设置

mysql数据导出的方法有非常多,比如mysqldump, mysql -utest_user -e 'sql' > file.txt, 这些都能够非常方便的导出数据,但是在使用普通用户导出数据的时候,出现了问题。

select * into outfile "/tmp/test.txt" from test_table

上面的语句也是mysql导出数据的一种方式,在使用普通用户运行语句时。出现了一下错误:

ERROR 1045 (28000): Access denied for user 'testuser'@'%' (using password: YES)

之前已经对该用户在相应的数据库上运行了授权,例如以下:

grant all on my_database.* to test_user ;

上面语句可以看出,已经把全部的权限赋予了test_user,但是问题依然存在。

问题原因:mysql有单独的file权限,须要单独赋予,同一时候file是一个全局权限。不可以只将单个数据库的文件权限赋予用户。

找到原因后。以下就将文件权限赋予对应用户:

grant file on *.* to 'test_user'@'%' ;

再次运行导出语句。成功运行。


分享到:
关键词:MySQL

网友留言(0 条)

发表评论