MYSQL的备份和恢复
MYSQL的备份:使用命令mysqldump备份数据库:
选项:
-A, --all-databases :备份全部数据库,使用此选项时不需要指定数据库名或表名
-Y, --all-tablespaces :备份的时候记录所有表空间信息,该选项是默认选项。
-y, --no-tablespaces :备份的时候不记录表空间信息。
-B, --databases :备份多个数据库
--default-character-set=name :设定默认字符集
-f :即使我们在一个表导出期间得到一个SQL错误仍然继续导入。
-h, --host=name :连接的主机名
--ignore-table=name :指定忽略不备份的表,可以指定多个,指定的时候必须都使用database.table的格式指定
-t, --no-create-info :备份时不写入表的创建信息字句
-p, --password[=name] :指定连接时需要密码
-P, --port=3306 :指定连接时的端口号
--protocol=name :指定用于连接的协议名(tcp, socket, pipe,memory)。
--set-charset :指定在输出备份文件时输出设定字符集的语句,默认为此选项,可以使用--skip-set-charset选项来关闭。
--dump-date :指定在输出备份文件时输出日期,默认为此选项,可以使用--skip-dump-date选项来关闭。
–add-drop-table :在每个create语句之前增加一个drop table。
-u, --user=name :指定登录用户名。
常用的备份语句:
备份单个数据库:mysqldump -u username -p dbname [table1 table2 ...] > BackupName.sql
table1和table2参数表示需要备份的表的名称,为空则整个数据库备份;
备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 ... dbname_n > Backup.sql
备份所有数据库
mysqldump -u username -p -all-databases > BackupName.sql
直接将MySQL数据库压缩备份
mysqldump -u username -p dbname | gzip > backupfile.sql.gz
MYSQL的恢复
一、使用mysql命令导入
mysql -u username -p db_name < backup.sql
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -u username -p dbname
二、使用mysql命令行命令source导入,在数据库较大时推荐使用此方法
先使用命令mysql -u username -p [password]进入mysql命令行
然后使用use db_name进入要恢复的数据库。
然后使用"source backup.sql(绝对硬盘路径的备份文件名)"来恢复数据库
一般导入比较大的备份文件时需要在mysql的配置文件中添加修改下面语句:
interactive_timeout = 120
wait_timeout = 120
max_allowed_packet = 32M