前言
网上现在流行一个技术为将mysql数据库中表格导出给excel去用,本篇文章将简单解析如何实现该项操作及报错解析。
一 操作流程
在mysql中
1.1 数据库内部导出
登录数据库
[root@server1 ~]# mysql -uroot -pabc123
mysql> show databases; 查看库信息
mysql> use tree; 使用数据库
mysql> show tables; 查看表信息
mysql> select * from fruits into outfile '/tmp/tree.xls'; 将表导出
mysql -uroot -pabc123 -e "select tree,fruits from aaa.fruits" > /opt/tree.xls;
出现报错
1.1.1 报错原因:
mysql> show global variables like '%secure_file_priv%';
secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。
1.1.2 解决方案:
1.修改secure_file_priv变量值
mysql> set global secure_file_priv='';
ERROR 1238 (HY000): Variable 'secure_file_priv' is a read only variable
为只读变量,不给修改变量值
解决方案 2:
[root@server1 ~]# vi /etc/my.cnf 编辑配置文件
[root@server1 ~]# systemctl restart mysqld 服务重启
在[mysqld]最后添加
secure_file_priv=''
此时,再次执行命令命令即可
mysql> select * from fruits into outfile '/tmp/tree.xls';
mysql> exit
[root@server1 ~]# cat /tmp/tree.xls 查看表
查看表内容
mysql> desc fruits;
mysql> select * from fruits;
1.2 未登录数据库的数据导出(终端导出)
在外面导出
[root@server1 ~]# mysql -uroot -pabc123 -e "use tree; select * from fruits" > /opt/tree.xls;
[root@server1 ~]# cat /opt/tree.xls 查看列表
总结
通过以上对mysql的应用操作的了解,学习,有利于更加全面的掌握,运用。