$ ls ~yifei/notes/

MySQL 备份与恢复

Posted on:

Last modified:

基础使用

帮助命令很简单

Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

备份

mysqldump --column-statistics=0 -u root --password=xxx DB_NAME [TABLE_NAME] > backup-${date}.sql

其中的 column-statistics 参数是为了避免 mysql-8 的一个 bug。

--password 可以直接在命令中使用密码

可以选择只 dump 一个数据库或者一个表。

恢复

mysql -u root -p DB_NAME < backup.sql

一行操作

mysqldump -u root -pPassword --all-databases | ssh user@new_host.host.com "cat - | mysql -u root -pPassword"

问题

如果直接备份所有数据库并恢复会更改 root 密码,并且导致内部数据库不一致,可以使用如下命令修复:

mysql_upgrade --force -uroot -p

参考:

  1. https://stackoverflow.com/questions/43846950/column-count-of-mysql-user-is-wrong-expected-42-found-44-the-table-is-probabl
WeChat Qr Code

© 2016-2022 Yifei Kong. Powered by ynotes

All contents are under the CC-BY-NC-SA license, if not otherwise specified.

Opinions expressed here are solely my own and do not express the views or opinions of my employer.

友情链接: MySQL 教程站