mysql 关于导出表的几种方式的区别
第一种 select * from tablename [ where condition] into outfile 目标文件夹下的某文件
mysql> select * from hxjy into outfile 'C:/mysqlback/hxjy.txt' ;
Query OK, 11 rows affected (0.00 sec)
第二种 是在cmd界面用mysqldump导出这种方式会导出 两个文件,一个txt,一个sql
C:\Users\Administrator>mysqldump -T C:\mysqlback company hxjy -u root -p --fields-terminated-by='!
!!!'
Enter password: ******
C:\Users\Administrator>
这种方式不需要指定文件名,生成的文件也必须符合 secure-file-priv 的位置要求否则会报错
mysql> select * from hxjy into outfile ‘C:\mysqlback\huixinjiaoyu.doc’ ;
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement —
第三种是用mysql --execute ‘select 语句’ dbname >某位置之下的某文件 的方式生成
C:\Users\Administrator>mysql -u root -p --execute 'select * from hxjy' company> C:\HJXY.doc
这种方式好像只能生成在盘的根目录下,指定其他位置的话存到了 MySQL文件夹下,这是为啥呢?
删掉该文件夹在执行,提示系统找不到指定路径,有知道的伙伴可以在评论区回答一下,谢谢!
C:\Users\Administrator>mysql -u root -p --execute 'select * from hxjy' company> C:/mysql/aiwo.txt
以上就是三种方式的基本区别,前两种跟secure-file-priv 有关,第三种 比较特殊。