linux下导入、导出mysql数据库命令
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ ---> mysql的data目录
3、只导出表数据
mysqldump -uroot -p -t abc > abc.sql
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uroot -p abc < abc.sql
三、csv 导入
清空表
truncate table regions;
如何删除mysql 主键索引
如果一个主键是自增长的,不能直接删除该列的主键索引,
应当先取消自增长,再删除主键特性
【如果这个主键是自增的,先取消自增长.】
具体方法如下:
alter table articles modify id int ; 【重新定义列类型】
alter table articles drop primary key;
sed 怎么互换列
tom=jim
echo 'tom=jim'|sed 's/\(\w*\)=\(\w*\)/\2=\1/'
AWK 互换列
cat region.csv | awk 'BEGIN{FS=",";ORS=""}{var=sprintf("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s\n", $1,$4,$2,$3,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14);print var}' > region1.csv
cat update_regions_fees.sql | awk 'BEGIN{FS=",";ORS=""}{var=sprintf("UPDATE regions SET fees=%s00,WHERE title=\"%s\"\;\n", $2,$1);print var}'> update_regions_fees2.sql
cat sqls/update_regions_fees.sql | awk 'BEGIN{FS=",";ORS=""}{var=sprintf("UPDATE regions SET agency_fees=%s00 WHERE title=\"%s\"\;\n", $2,$1);print var}' > sqls/update_regions_fees2.sql
load data 导入数据
load data local infile 'sqls/region1.csv' into table regions fields terminated by ',' lines terminated by '\n';
还原主键;
alter table regions modify id int unsigned auto_increment primary key;