本文共 1949 字,大约阅读时间需要 6 分钟。
23数据备份和恢复
(1)备份
①使用MYSQLdump命令备份
mysqldump -u user -h localhost -p password dbname [table1,[table2 ]....]>filename.sql
备份所有数据库
mysqldump -u user -h localhost -p --all-databases>filename.sql
②复制数据目录
③使用MYSQLhotcopy
是备份数据库或单个表的最快的途径,但是它只能运行在数据库目录所在的机器上,并且只能备份MYISAM类型的表。MYSQLhotcopy在Unix系统中运行。
mysqlhotcopy -u root -p dbname /usr/backup
(2)文件恢复
①mysql -u user -p dbname<filename.sql
在执行前需要先建好数据库
如果已经登录到mysql中了,可以使用source来进行恢复
mysql>source filename.sql;
在使用source的时候必须先使用use 语句到对应的数据库中
②复制数据目录
执行前需要关闭mysql数据库服务
③使用MYSQLhotcopy
先停止服务
cp -R /user/backup/test usr/local/mysql/data
重启服务器
如果恢复的数据库已经存在,需要使用drop 删除已存在的数据之后,恢复才能成功。
mysql不同版本之间必须兼容。
(3)数据迁移
①相同版本的mysql数据库之间的迁移(主版本号相同)
mysqldump -u user -h localhost -p password dbname [table1,[table2 ]....]>filename.sql
mysql -u user -p dbname<filename.sql
②不同版本号之间的数据迁移
旧版本的与新版本的mysql可能出现字符集不同的情况,在迁移过程中要对默认的字符集进行修改,不然无法正常显示。
新版本会对旧版本有一定的兼容性,从旧版本的mysql迁移到新版本的mysql迁移时,对于MyISAM引擎的表,可以直接复制数据库文件,也可以使用MySQLhotcopy工具、MySQLdump工具。
对于InnoDB引擎的表一般只能使用mysqldump工具。
从新版本迁移到旧版本时最好使用mysqldump命令导出,然后导入到目标库中。
③不同数据库之间的迁移
迁移工具MyODBC实现mysql到sql server的 迁移
MySQL Migration Toolkit可以在不同数据库之前迁移
(4)表的导入导出
①select ...into outfile 'filename'导出文本文件
mysql>select * from test.preson into outfile "C:\person.txt";
②使用mysqldump导出文本文件
mysqldump -T path -u root -p dbname [table] [options]
③使用mysql命令导出文本文件
msyql -u root -p --execute="select 语句" dbname>filename.txt
mysql -u root -p --execute"select * from person;" test >c:\person.txt;
--vertical 显示 执行的详细信息
mysql -u root -p --vertical --execute"select * from person;" test >c:\person.txt;
--html记录到html文件里
>mysql -u root -p --html --execute"select * from person;" test >c:\person.html;
--xml记录到xml文件里
mysql -u root -p --xml --execute"select * from person;" test >c:\person.xml;
④使用load data infile方式导入文本文件
load data infile ‘filename.txt’ into table tablename
⑤使用mysqlimport命令导入文本文件
mysqlimport -u root -p dbname filename.txt
为了保证数据的一直行,需要在备份文件前,执行sql
flush tables with read lock;
转载地址:http://fdsni.baihongyu.com/