Mysql 数据库备份还原
共计 1330 个字符,预计需要花费 4 分钟才能阅读完成。
1 备份数据库
1.1 备份单个数据库
mysqldump -u root -p123456 --databases db1 > /var/lib/mysql/backup.sql
- --all-databases, -A: 备份所有数据库
- --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump 把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum 把每个名字都当作为数据库名。
- --no-data, -d:只导出表结构
- --quick, -q:快速导出
- --xml, -X:导出为 xml 文件
备份单个数据库的某几个表,比较少用,可以了解下
# 此处为不完整的sql,不能直接使用下面的还原语句。需要添加 use 命令选中数据库
mysqldump -u root -p123456 db1 tb1 tb2 > /var/lib/mysql/incomplete.sql
1.2 备份多个数据库
指定方式备份:
mysqldump -u root -p123456 --databases db1 db2 > /var/lib/mysql/backup.sql
排除方式备份:
mysql_password=123456
mysql -N -e "SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys');" -uroot -p$mysql_password | xargs mysqldump -uroot -p$mysql_password --databases > /var/lib/mysql/backup.sql
上述命令是排除四个系统数据库:information_schema、mysql、performance_schema、sys 然后其他的表进行全备份。
还有一种方式,这种方式会把包含对应字符串的也排除,比如 system 数据库将不会导出,不推荐这种。
mysql_password=123456
mysql -e "show databases;" -uroot -p$mysql_password| grep -Ev "Database|information_schema|mysql|performance_schema|sys" | xargs mysqldump -uroot -p$mysql_password --databases > /var/lib/mysql/backup.sql
1.3 备份全部数据库
如果需要备份所有的数据库和表,可以执行如下命令。
mysqldump -uroot -p123456 --all-databases >/var/lib/mysql/backup.sql
2 还原数据库
可通过如下方式还原数据库,即执行 backup.sql 文件的 sql 语句。
mysql -u root -p123456 < /var/lib/mysql/backup.sql
如果不能通过输入明文密码的方式进行,可以通过修改配置文件 /etc/my.cnf
的方式,添加如下内容,然后重启 mysql。
[mysqldump]
user=root
password=123456
提醒:本文发布于396天前,文中所关联的信息可能已发生改变,请知悉!
Tips:清朝云网络工作室
阅读剩余
THE END