关于在sqlyog中用mysql进行导入数据为exel文档形式的操作
将数据导入进文档的语句:
select 列表 from 表名 into outfile '文档的路径/文档名.xls'
该文档必须之前不存在,否则会报错:
file ‘…’ already exists
在这过程中可能会遇到以下问题:
1."The MySQL server is running with the --secure-file-priv option so it cannot execute this statement"
原因:无法得知mysql的默认导出目录,甚至不知道mysql默认的导出目录都有所限制.
我们可以通过show variables like '%secure%'
来查看secure-file-priv的当前值
null | 限制mysql不允许导入导出 |
---|---|
/tmp/ | 表示限制mysql的导入导出只能发生在/tmp/目录下 |
没有具体值 | 表示不对mysql的导入导出做任何限制 |
此开关默认为NULL,即不允许导入导出
解决方法:
在安装MySQL的目录中找到my.ini的配置文件(记录了MySQL的默认配置,如端口号,默认字符集,默认存储引擎等等),打开这个文件,加入
secure-file-priv =
即可解决问题,(若无法修改文件,可用Notepad++以管理员打开进行修改)
!注意,修改完后需重新启动MySQL服务器才可生效.
2.打开生成的exel文档时中文字符乱码
原因:sqlyog默认中文的字符编码类型为utf8,而windows系统默认的中文编码类型为GB2312,因此出现乱码问题
解决方式:
用convert转换编码
convert(typename using gb2312)
注:这是新手第一次用mysql语言实践时遇到的问题,还有许多东西没搞定,还需要多多学习o(╥﹏╥)o