数据备份
mysqldump (在终端执行)
mysqldump -u username -p dbname [tbname ...]> filename.sql
对上述语法参数说明如下:
- username:表示用户名称;
- dbname:表示需要备份的数据库名称;
- tbname:表示数据库中需要备份的数据表,可以指定多个数据表。省略该参数时,会备份整个数据库;
- 右箭头“>”:用来告诉 mysqldump 将备份数据表的定义和数据写入备份文件;
- filename.sql:表示备份文件的名称,文件名前面可以加绝对路径。通常将数据库备份成一个后缀名为
.sql的文件。
mysqldump备份时出现when using LOCK TABLES
加上-skip-lock-tables选项即可。
mysqldump -uxxx -pxxx --database <数据库名> --skip-lock-tables > new.sql
例子:
# 备份一个数据库
mysqldump -uroot -p test student>C:\student.sql
# 备份所有数据库
mysqldump -u username -P --all-databases>filename.sql
数据恢复
恢复数据库
mysql -u username -P [dbname] < filename.sql
- dbname 表示数据库名称,该参数是可选参数。如果 filename.sql 文件为 mysqldump 命令创建的包含创建数据库语句的文件,则执行时不需要指定数据库名。如果指定的数据库名不存在将会报错;
- filename.sql 表示备份文件的名称。
LOAD DATA INFILE语句(单表数据导入)
load data local infile '文件路径' into table 表名;
导入完成后会显示执行状态,如果表中存在主键约束或唯一性约束,则相同的数据会被跳过
SQL导入
# 设置编码
set names utf8;
# 在mysql命令行执行
source 文件路径;