一、数据的备份
1.mysqldump
mysqldump -u user -h host -p dbname [tablename, [tablename...]] > filename.sql
■ 备份数据库中所有的表 → mysqldump -u root -p dbname > backup.sql
■ 备份数据库中某个表 → mysqldump -u root -p dbname tblname > backup.sql
■ 备份多个数据库 → mysqldump -u root -p --databases db1 db2 > backup.sql
■ 备份系统中所有的数据库 → mysqldump -u root -p --all-databases > backup.sql
注: 如果在服务器上,且表均为MYISAM表,应考虑使用mysqlhotcopy ☆☆☆
二、数据的还原
1.mysql
■ mysql -u user -p [dbname] < filename.sql
■ 登陆了mysql后,可通过source filename 恢复 → 使用前需用use 选择好数据库 ☆
2.mysqlhotcopy 快速恢复
三、表的导出
1.mysqldump → shell下
mysqldump -T path -u root -p dabname [tables] [opt]
■ 只有制定了-T才能到处纯文本文件,path表述导出数据的目录
■ opt选项(同下类似)
--fields-terminated-by=value
--fields-enclosed-by=value
--fields-optionally-enclosed-by=value
--fields-escaped-by=value
--line-terminated-by=value
注:value无需用‘’括起来
2.SELECT...INTO OUTFILE → 登陆mysql后
SELECT columunlist FROM tbl WHERE condition INTO OUTFILE 'filename' [OPT]
■ opt选项: FILEDS TERMINATED BY 'value' → 字段之间分隔符为value
FILEDS [OPTIONALLY] ENCLOSED BY 'value' → 字段包围字符为value
FILEDS ESCAPED BY 'value' → 设置转义字符为value
LINES STARTING BY 'value' → 设置每行开头字符为value
LINES TERMINATED BY 'value' → 设置每行结尾字符为value
注:通过opt可调整导出的filename中数据显示的样式,很有用! ☆☆☆☆☆
3.mysql命令 → shell下
mysql -u root -p --execute="SELECT 语句" dbname > filename.txt
■ mysql -u root -p --execute="SELECT * FROM tbl;" db > output.txt
■ mysql -u root -p --vertical --execute="SELECT ..." > ... → 将每行记录分多行显示
■ mysql -u root -p --html --execute="..." db > ... → 导出到html文件(或用--xml)
四、表的导入
1.LOAD DATA INFILE
LOAD DATA INFILE ‘filename.txt’ INTO TABLE tbl [OPT] [IGNORE number LINES]
■ OPT选项 → 同 SELECT ... INTO OUTFILE 一致
■ IGNORE number LINES → 忽略filename.txt的前number行
2.mysqlimport
mysqlimport -u root -p daname filename.txt [OPT]
■ OPT选项 → 同mysqldump,但了一个--ignore-lines=n ,当然还有很多其他的