mysql 导出数据 权限_MySQL 导出数据

mysql的数据导出几种方法 http://www.blogjava.net/fisher/articles/90455.html

1、导出文件,需要相关权限

mysql数据导出的方法有很多,例如mysqldump, mysql -e 'sql' > file, 这些都可以很方便的导出数据,可是在使用普通用户导出数据的时候,出现了问题。

select * into outfile "file_path" from my_table

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

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

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

grant all on my_database.* to my_user ;

上面语句可以看出,已经把所有的权限赋予了my_user,可是问题依旧存在。问题到底出现在什么地方呢?google了一下后发现mysql有单独的file权限,需要单独赋予,同时file是一个全局权限,不能够仅仅将单个数据库的文件权限赋予用户。找到原因后,下面就将文件权限赋予相应用户:

grant file on *.* to my_user ;

再次执行导出语句,成功执行。

--自己本机上处理

mysql -u root -p

grant file on *.* to 'hadoop'@'stjf1'

---------------------------------------------------------------------------------------------------------------------------

2、可能导出的时候回报下面的错误,需要修改导出文件的目录。

mysql> select * from test into outfile '/tmp/test_out.txt' fields terminated by ',' optionally enclosed by '"';

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

报错原因:

secure_file_priv设置了指定目录,需要在指定的目录下进行数据导出

mysql> show variables like '%secure%';

+--------------------------+-----------------------+

| Variable_name            | Value                 |

+--------------------------+-----------------------+

| require_secure_transport | OFF                   |

| secure_auth              | ON                    |

| secure_file_priv         | /var/lib/mysql-files/ |

+--------------------------+-----------------------+

3 rows in set (0.27 sec)

mysql> select * from test into

outfile '/var/lib/mysql-files/test_out.txt' fields terminated by ','

optionally enclosed by '"';

Query OK, 5 rows affected (0.21 sec)

secure_file_priv参数说明

这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT ... INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。

如果这个参数为空,这个变量没有效果;

如果这个参数设为一个目录名,MySQL服务只允许在这个目录中执行文件的导入和导出操作。这个目录必须存在,MySQL服务不会创建它;

如果这个参数为NULL,MySQL服务会禁止导入和导出操作。这个参数在MySQL 5.7.6版本引入。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值