问题:在cmd中输入net stop mysql反馈“服务名无效”

mysql试图不能修改 mysql secure_file_priv修改不了_mysql试图不能修改

 

win+R打开运行窗口,输入

services.msc

查看其中mysql的服务名,比如我的是叫做MySQL80

mysql试图不能修改 mysql secure_file_priv修改不了_重启_02

让我们继续回到最开始的部分,在cmd窗口输入

net start MySQL80

尴尬,又报错了!

mysql试图不能修改 mysql secure_file_priv修改不了_数据_03

百度了才知道原来是因为我们的cmd窗口并不是使用管理员身份打开的,所以才会被系统拒绝访问!

在以管理员身份启动后,输入上面的代码,Mysql启动成功!

mysql试图不能修改 mysql secure_file_priv修改不了_数据_04

 

问题:mysql使用into outfile会报错“ (1290, 'The MySQL server is running with the --secure-file-priv option so it cannot execute this statement')”

mysql试图不能修改 mysql secure_file_priv修改不了_重启_05

原因是因为mysql 5.7新增了一个secure-file-priv参数,这个参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

  • secure_file_priv的值为NULL ,表示限制mysql 不允许导入|导出
  • 当secure_file_priv的值为具体目录 ,表示限制mysql 的导入|导出只能发生在设定目录下,目录必须存在,mysql不会创建目录
  • 当secure_file_priv的值没有具体值时,表示不对mysql 的导入|导出做限制

 

那我们怎么在mysql中查看这个参数呢?在cmd使用以下命令即可!

show variables like '%secure%'

mysql试图不能修改 mysql secure_file_priv修改不了_数据_06

 

解决方法:

在mysql文件的my.ini配置文件里面修改,新增一行,输入

secure-file-priv =

mysql试图不能修改 mysql secure_file_priv修改不了_mysql试图不能修改_07

保存,重启mysql,注意,不是在cmd当中退出mysql,而是直接关闭mysql服务,在重启,具体的可以百度。

 

mysql试图不能修改 mysql secure_file_priv修改不了_重启_08

哈哈,终于修改成功了,Oh,yeah!

官方文档:https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_secure_file_priv

 ================================ 这里是愉快的分割线 ================================

顺便记录下,mysql导出数据的各项参数意思:

SELECT
    '统计日期',
    '支付金额',
    '成功退款金额' 
FROM
    alfonso INTO OUTFILE 'C:/Users/user/Desktop/XX.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n';

# FIELDS TERMINATED BY ','      以,作为分隔符
# OPTIONALLY ENCLOSED BY  '"'   字段用"号括起
# ESCAPED BY '"'                用"当做转义字符
# LINES TERMINATED BY '\r\n'    以'\r\n'为行间分隔符

 

问题:输出数据中报错‘OS errno 13 - Permission denied’

mysql试图不能修改 mysql secure_file_priv修改不了_mysql试图不能修改_09

这个是因为mysql没有读/写文件的权限,找到的解决办法是打开计算机服务,找到mysql服务,点击属性,选择登入,在这里修改下登录身份,选择本地身份保存即可,这里需要重新启动mysql服务!

mysql试图不能修改 mysql secure_file_priv修改不了_mysql试图不能修改_10

问题解决!~~~

 

问题:导出的数据是乱码

这个是需要在my.ini文件中修改下参数即可完美解决!

mysql试图不能修改 mysql secure_file_priv修改不了_重启_11

 

问题:导出的数据没有列表头

这就他妈尴尬了,导出来的数据居然不带头,这搞毛线啊!还好天无绝人之路之路,在网络上找到了思路,利用union方法

原来不带头的公式:

select  统计日期,支付金额,成功退款金额 from 表名

现在带头的公式:

select * from (SELECT'统计日期','支付金额','成功退款金额' UNION SELECT 统计日期,支付金额,成功退款金额 FROM 表名)b;

问题成功解决!