mysql之数据库数据导入EXCEL表格

使用场景

将数据路中的数据导出到excel表格中,用于恢复备份时核对数据库数据的准确性

一、操作流程

[root@server3 ~]# mysql #进入mysql
mysql> create database user;  #创建userku
Query OK, 1 row affected (0.01 sec)

mysql> use user #进入user库
Database changed
mysql> create table stu(name varchar(48) not null,score int(16) not null);
Query OK, 0 rows affected (0.01 sec)  #创建表stu

mysql> insert into stu values('qiqi',80),('lili',90),('sisi',85)
    -> ; #插入数据
mysql> select * from stu
    -> ;
+------+-------+
| name | score |
+------+-------+
| qiqi |    80 |
| lili |    90 |
| sisi |    85 |
+------+-------+
3 rows in set (0.00 sec)

 在/目录下创建一个目录为test,并修改配置文件

[root@server3 ~]# mkdir /test
[root@server3 ~]# vi /etc/my.cnf
secure-file-priv = ""     #添加一行,可以指定路径,如果为空可以导入任何有权限的路径
systemctl restart mysqld #重启服务 

若没加此行会出现如下报错

MYSQL导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement,

查看 secure_file_priv 的值,默认为NULL,表示限制不能导入导出。

查看官方文档,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录。

  • secure_file_priv 为 NULL 时,表示限制mysqld不允许导入或导出。
  • secure_file_priv 为 /tmp 时,表示限制mysqld只能在/tmp目录中执行导入导出,其他目录不能执行。
  • secure_file_priv 没有值时,表示不限制mysqld在任意目录的导入导出。

修改test目录权限

 

[root@server3 ~]# chmod 777 /test
[root@server3 ~]# cd /
[root@server3 /]# ll
drwxrwxrwx.   2 root root    6 11月 29 22:14 test

 

导出数据

mysql> select * from stu into outfile '/test/user.xls';
Query OK, 3 rows affected (0.00 sec)  

进入/test查看文件是否生成

[root@server3 ~]# cd /test
[root@server3 test]# ll
总用量 4
-rw-rw-rw-. 1 mysql mysql 24 11月 29 22:30 user.xls

 导出数据,查看与数据库内容是否一致

 

 

 

原文地址:https://www.cnblogs.com/tianzhendengni/p/14058575.html