通过MySQL命令mysqldump实现数据备份和还原
在具体使用命令mysqldump时,经常分为以下三种形式:
一、备份一个数据库
二、备份多个数据库
三、备份所有数据库
一、备份完整语句
导出某个数据库下的某张数据表(不包含数据) mysqldump -h IP地址 -P 端口 -u 用户名 -p 密码 -d 数据库名 表名 > 备份文件名
注意:-d 表示只备份表结构,不备份数据
如果出现如下错误警告:
Unknown table ‘column_statistics‘ in information_schema (1109)
是因为mysql8.0以上用 mysqldump进行备份的时候都会报错
解决方案:
只需要添加新参数--column-statistics=0即可,格式如下:
mysqldump --column-statistics=0 -h IP地址 -P 端口 -u 用户名 -p 密码 -d 数据库名 表名 > 备份文件名
如果想备份本机数据库下的数据,则使用如下语句:
mysqldump -u username -p dbname tablename> tablename.sql
(1)导出整个数据库(包括数据库中的数据)
mysqldump -u username -p dbname > dbname.sql
(2)导出数据库结构(不含数据)
mysqldump -u username -p -d dbname > dbname.sql
(3)导出数据库中的某张数据表(包含数据)
mysqldump -u username -p dbname tablename > tablename.sql
(4)导出数据库中的某张数据表的表结构(不含数据)
mysqldump -u username -p -d dbname tablename > tablename.sql
二、备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 ... dbnamen > backupname.sql
三、备份多个数据库
mysqldump -u username -p --all -databases > backupname.sql
通过命令mysql实现数据还原
1、首先通过如下命令备份某个数据库(包含数据)
mysqldump --column-statistics=0 -h139.129.246.77 -P3306 -uceshi -pceshi@123 youtubenew > youtube.sql
2、然后通过如下命令把备份数据还原到(本地)另一台服务器的数据库中
mysql -uroot -p < youtube.sql
会出现如下错误:
ERROR 1046 (3D000) at line 22: No database selected
那是因为在备份的文件中不存在创建库youtube的sql语句
解决方法如下:
在备份的sql文件中添加如下两行命令:
CREATE DATABASE `youtubenew`; use youtubenew;
保存文件,再次还原,即:
mysql -uroot -p < youtube.sql