mysql数据库导入导出文件

数据库导出到文件

导出sql文件:

mysqldump -h localhost -uroot -p123 test > d:\test.sql    //windows
mysqldump -h localhost -uroot -p test > /tmp/test.sql    //mac和linux
//win下可以直接输入密码,但是mac下不行,必须另输

将test数据库导出到d盘下面的test.sql文件中。得到的是重新建立一个一模一样的test数据库的sql语句。

mysqldump -h localhost -uroot -p123 test stu > d:\test.sql    //windows
mysqldump -h localhost -uroot -p test stu > /tmp/test.sql    //mac和linux

将test数据库中的stu数据表导出到外部文件中。得到是重新创建一个一模一样的stu数据表的sql语句。

导出txt文件:

mysqldump -h localhost -uroot -p -T D:\data\mysql test stu [option]    //windows
mysqldump -h localhost -uroot -p -T /tmp test stu [option]        //mac和linux
//关于[option]看
//https://blog.csdn.net/u010700335/article/details/40554703

或者进入mysql里面

mysql> use test
mysql> select * from stu into outfile 'd:\\data\\stu.txt' [option];    //必须是双反斜杠
//option 介绍 转自
//https://blog.csdn.net/u010700335/article/details/40554703
//FIELDS TERMINATED BY ‘字符串’:设置字符串为字段的分割符,默认值为 \t
//FIELDS ENCLOSED BY ‘字符’:设置字符串括上char varchar text等字符型字段,默认值为 无任何符号
//FIELDS OPTIONALLY ENCLOSED BY ‘字符’:设置字符串括上字段的值,默认值为 无任何符号
//LINES STARTING BY ‘字符串’:设置每一行开头的字符,默认值为 无任何字符
//FIELDS ESCAPED BY ‘字符’:设置转义字符,默认值为 \
//LINES TERMINATED BY ‘字符串’:设置每行结束符,默认值为 \n

上面这个语句在执行的时候可能会报错,因为d:\data\文件夹没有被设置为mysql传输文件指定的文件夹。一般刚安装时这个文件夹为NULL,我们需要自己设置。

下面设置为windows:

secure_file_priv="D:\data\" 表示d盘下的data文件夹可以接受mysql的文件传输

secure_file_priv=""    等于空时,表示文件传输不受限制

secure_file_priv= NULL 表示不能进行文件传输。

设置方法就是:

1.退出mysql,关闭mysql服务

2.打开my.ini

3.在[mysqld]后面添加一行,如图所示

4.保存,重启mysql服务。

5.再次输入上面的语句就可以了(注意语句中的文件要用"\\")

通过查看show variables like '%secure%' 就可以知道设置是否成功。

下面的设置为mac:

1.退出mysql,关闭mysql服务

2.打开my.cnf (注意,mac中的my.cnf是在etc文件下的,不是在mysql文件夹中的。linux中我步确定放在哪里)

3.在[mysqld]后面添加一行,如图所示

4.保存,重启mysql服务。

5.再次输入上面的语句就可以了

数据库从导入文件

导入sql:

必须先创建test2数据库

mysql> create database test2
mysql -h localhost -uroot -p123 test2 < d:\test.sql    //windows
mysql -h localhost -uroot -p test2 < /tmp/test.sql    //mac

或者进入mysql

mysql> use test3
mysql> source D:\data\database\mysql\test.sql        //windows
mysql> source /tmp/test.sql            //mac

导入txt:

譬如我有这么一张表

序号,名字,成绩
1,张三,100
2,hello,234
3,张三,100
4,王五,100
6,天才,99
7,aaa,22
8,baa,22

必须先创建符合文本数据规范的数据表

create table import (id int(10),name varchar(128), study int(10));

然后导入

load data infile 'D:\\data\\database\\mysql\\text.txt'
into table import
fields terminated by '\,'    //分隔符 这个就是[option]中的一种
ignore 1 lines                //忽略第一行(标题行)
(id,name,study);

参考博文:

https://www.cnblogs.com/yuwensong/p/3955834.html

https://blog.csdn.net/u010700335/article/details/40554703

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/82592543