首页 > 数据库技术 > 详细

Mysql 导入导出,备份和恢复

时间:2020-01-02 22:39:47      阅读:88      评论:0      收藏:0      [点我收藏+]

导入/出,备份/恢复

  • 导入/导出

  • 备份/恢复

 

数据备份和恢复

参考:http://www.mysqltutorial.org/mysql-copy-database/ 

参考:http://www.mysqltutorial.org/how-to-backup-database-using-mysqldump.aspx  mysqldump命令的详细介绍,包括参数的使用。

备份

mysqldump -u root -p 数据库名 > 路径/xxx.sql   

??>代表export

恢复

  • 连接mysql,创建新的数据库
  • 退出连接,执行如下命令:  mysql -uroot -p 新数据库名 < 路径/xxx.sql;   ??< 代表import,
  • 或者进入控制台,在一个数据库内使用命令:source 路径/xxx.sql

 

另一种备份+恢复的方法,更高效!

使用--databases参数:

  1. mysqldump -u root -p --databases 数据库名 > 路径/xxx.sql 
  2. 原数据库数据丢失/损坏,删除原数据库。
  3. mysql -u root -p < 路径/xxx.sql 

--databases参数的作用其实是增加了2行代码到xxx.sql中:

  1. create database xxx;
  2. use xxx;

 

最后查看使用:

show tables from 新的数据库名 


 

导入/导出

导入Load data

https://dev.mysql.com/doc/refman/8.0/en/load-data.html


第一步:建表
create table orderinfo(
orderid int primary key not null ,
userid int,
isPaid varchar(10),
price float,
paidTime varchar(30));


create table userinfo(
userid int primary key,
sex varchar(10),
birth date);


第二步:导数,

load data local infile ‘路径/xxx.csv‘ into table orderinfo fields terminated by ‘,‘;
load data local infile ‘路径/user_info_utf.csv‘ into table userinfo fields terminated by ‘,‘;

??
a、语句要正确
b、路径不要有中文,是左斜杆,
c、mysql 8.0 导入会报错

The used command is not allowed with this MySQL version。

这是因为安全需要,对于mysql client, 默认为禁止加载本地数据。
解决办法参考了:stackoverflow

SHOW VARIABLES LIKE local_infile;
SET GLOBAL local_infile = 1;

 

d, ??local关键字,当被指定后,会从在客户端主机的client program读文件并发送到server。

??: 要有fields terminated by ‘,‘ 是因为csv 文件是以逗号为分割符的


第三步:对 orderinfo 表的日期数据进行规整
a、先把时间格式标准化变成 1993-02-27 这样的
update orderinfo set paidtime=replace(paidtime,‘/‘,‘-‘) where paidtime is not null;
b、然后更新字符串为日期格式,然后才能使用日期函数进行操作,
update orderinfo set paidtime=str_to_date(paidtime,‘%Y-%m-%d %H:%i‘) where paidtime is not null;
如果报 function str_to_datetime_value 错误,可以用 select * from orderinfo where paidtime=‘\r‘ limit 10; 来看一下是否包含了 \r 符号,
如果是包含了,则用下面语句再过滤掉
update orderinfo set paidtime=str_to_date(paidtime,‘%Y-%m-%d %H:%i‘) where paidtime is not null and paidtime <>‘\r‘;

MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this
a.解决办法:
https://blog.csdn.net/gb4215287/article/details/79762020
b.把数据放到
secure-file-priv


附带语句:
# 清除表全部数据命令
truncate userinfo;
# 删除表命令
drop table user info;
# 修改表字段类型命令
alter table orderinfo modify column paidtime varchar(45);


MySQL 日期时间 Extract(选取) 函数。
1. 选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

set @dt = ‘2008-09-10 07:15:30.123456‘;
select date(@dt); -- 2008-09-10
select time(@dt); -- 07:15:30.123456
select year(@dt); -- 2008
select quarter(@dt); -- 3
select month(@dt); -- 9
select week(@dt); -- 36
select day(@dt); -- 10
select hour(@dt); -- 7
select minute(@dt); -- 15
select second(@dt); -- 30
select microsecond(@dt); -- 123456

2.Example
date_add("2017-06-15",INTERVAL 10 DAY)

Mysql 导入导出,备份和恢复

原文:https://www.cnblogs.com/chentianwei/p/12142068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!