问题:在cmd中输入net stop mysql反馈“服务名无效”
win+R打开运行窗口,输入
services.msc
查看其中mysql的服务名,比如我的是叫做MySQL80
让我们继续回到最开始的部分,在cmd窗口输入
net start MySQL80
尴尬,又报错了!
百度了才知道原来是因为我们的cmd窗口并不是使用管理员身份打开的,所以才会被系统拒绝访问!
在以管理员身份启动后,输入上面的代码,Mysql启动成功!
问题:mysql使用into outfile会报错“ (1290, 'The MySQL server is running with the --secure-file-priv option so it cannot execute this statement')”
原因是因为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文件的my.ini配置文件里面修改,新增一行,输入
secure-file-priv =
保存,重启mysql,注意,不是在cmd当中退出mysql,而是直接关闭mysql服务,在重启,具体的可以百度。
哈哈,终于修改成功了,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服务,点击属性,选择登入,在这里修改下登录身份,选择本地身份保存即可,这里需要重新启动mysql服务!
问题解决!~~~
问题:导出的数据是乱码
这个是需要在my.ini文件中修改下参数即可完美解决!
问题:导出的数据没有列表头
这就他妈尴尬了,导出来的数据居然不带头,这搞毛线啊!还好天无绝人之路之路,在网络上找到了思路,利用union方法
原来不带头的公式:
select 统计日期,支付金额,成功退款金额 from 表名
现在带头的公式:
select * from (SELECT'统计日期','支付金额','成功退款金额' UNION SELECT 统计日期,支付金额,成功退款金额 FROM 表名)b;
问题成功解决!