一、数据的备份 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 ,当然还有很多其他的