一、表的复制
1、语法格式
create table 表名 select 查询命令;
2、示例
# 假设userinfo已存在,包含username,password,uid字段
1、复制userinfo表中的全部记录,userinfo2
create table userinfo2 select * from userinfo;
2复制userinfo表中username,password,uid三个字段的第2-10条记录,userinfo3
create table userinfo3 select username,password,uid from userinfo limit 1,9;
3、复制表结构
create table 表名 select 查询命令 where false;
4、注意
复制表的时候不会把原有表的key属性复制过来
二、数据导入
1、作用
把文件系统内容导入到数据的表中
2、命令格式(mysql交互)
load data infile "文件名"
into table 表名
fileds terminated by "分隔符"
lines terminated by "\n"
3、示例
把 /etc/passwd 文件中的内容导入到db2库下的userinfo表。
passwd文件数据分析:
hilqiqi0 : x : 1000 : 1000 : hilqiqi0,,, : /home/hilqiqi0 : /bin/bash
用户名 密码 UID号 GID号 用户描述 用户主目录 登录权限
4、操作步骤
a、在数据库中创建对应的表
create table userinfo(
username char(20),
password char(1),
uid int,
gid int,
comment varchar(50),
homedir varchar(50),
shell varchar(50)
);
b、将要导入的文件拷贝到数据库的默认搜索路径中
1)查看数据库的默认搜索路径
show variables like "%secure_file_priv%";
默认:/var/lib/mysql-files/
2)Linux命令行输入:
sudo cp /etc/passwd /var/lib/mysql-files/
c、执行数据导入语句
load data infile "/var/lib/mysql-files/passwd"
into table userinfo
fields terminated by ":"
lines terminated by "\n";
三、数据导出
1、作用
将数据库表中的记录保存到系统文件里2、语法格式
select ... from 表名into outfile “文件名”
fields terminated by “分隔符”
lines terminated by “\n”;
3、示例
把userinfo表中的username、password和uid导出到文件user.txtselect username,password,uid from userinfo
into outfile "/var/lib/mysql-files/user.txt"
fields terminated by ","
lines terminated by "\n";
4、注意
导出的内容有SQL查询语句决定执行导出命令时 路径必须指定对应的数据库搜索路径
四、数据备
mysqldump,在Linux终端中操作
1、命令格式
mysqldump -u用户名 -p 源库名 > 路径/XXX.sql
2、源库名的表示方式
--all-databases 备份所有库
库名 备份单个库
-B 库1 库2 ... 备份多个库
库名 表1 表2 ... 备份指定表
3、示例
0、备份db2库
mysqldump -uroot -p db2 > db2.sql
1、备份所有库为 all.sql , /home/tarena/mydata/
mysqldump -uroot -p --all-databases > all.sql
2、备份MOSHOU库中 sheng、city、xian三张表 MOSHOUscx.sql
mysqldump -uroot -p MOSHOU sheng city xian > MOSHOUscx.sql
3、备份2个库
mysqldump -uroot -p -B MOSHOU db4 > MSdb4.sql
五、数据恢复
1、命令格式
mysql -u用户名 -p 目标库名 < 路径/xxx.sql2、示例
a、先备份库mysqldump -uroot -p db2 > db2.sql;
b、删除库
drop database db2;
c、先创建空库
create database db2 default charset=utf8;
d、恢复命令
mysql -uroot -p da2 < db2.sql;
3、两种备份
完全备份:mysqldump增量备份:binlog日志、xbackup工具
4、从所有库的备份文件中恢复某一个库(--one-database)
mysql -u用户名 -p --one-database 目标库名 < 所有备份.sqleg:mysql -uroot -p --one-database db2 < all.sql
5、注意
恢复库时,库中新增的表不会删除恢复时必须先创建空库