一、备份
mysqldump命令将数据备份为文本,文本内容为还原时执行的语句。
mysqlhotcopy命令适用于不停止服务器时的快速备份,其工作原理是将需要备份的数据库加读操作锁,然后将内存中的数据写回硬盘,最后把需要备份的数据库文件复制到目标目录。(Linux系统)
若选择直接复制备份数据库目录,必须保证数据表引擎是MyISAM,InnoDB表的空间不能直接复制。
mysqldump -u root -p mysql user > backup.sql #备份单个数据库 mysqldump -u root -p --databases mysql world > backup.sql #备份多个数据库 mysqldump -u root -p --all-databases > backup.sql #备份所有数据库
二、还原
mysql -u root -p mysql < backup.sql
mysql -u root -p < backup.sql
注:可通过备份还原实现数据库的迁移。
三、导出表
SHOW VARIABLES LIKE ‘%secure%‘; #查看secure-file-priv默认值 SELECT * FROM mysql.user INTO OUTFILE ‘C:/Backup/outfile.txt‘ FIELDS TERMINATED BY ‘\、‘ #字段使用、隔开 OPTIONALLY ENCLOSED BY ‘\"‘ #字符型数据使用"包括 LINES STARTING BY ‘\>‘ #记录以>开头 TERMINATED BY ‘\n\r‘; #Windows默认回车换行 mysqldump -u root -p -T C:/Backup mysql "--fields-terminated-by=、" "--fields-optionally-enclosed-by="" mysql -u root -p -e "SELECT * FROM user" mysql > C:/Backup/outfile.txt
注:可通过修改my.ini文件来修改secure-file-priv的默认值,修改后必须重新启动MySQL。
四、导出表
LOAD DATA INFILE ‘C:/Backup/outfile.txt‘ INTO TABLE mysql.user FIELDS TERMINATED BY ‘\、‘ OPTIONALLY ENCLOSED BY ‘\"‘ LINES STARTING BY ‘\>‘ TERMINATED BY ‘\n\r‘; mysqlimport -u root -p mysql C:/Backup/outfile.txt "--fields-terminated-by=、" "--fields-optionally-enclosed-by="" #非法代码和指令,仅用于演示使用