mysql 冷备 mysqldump

备份单个数据库:

mysqldump -u root -h 127.0.0.1 -ppassport dbname > backdb.sql 

备份多个数据库:

mysqldump -u root -h 127.0.0.1 -ppassport --databases dbname1, dbname2 > backdb.sql

备份数据库表:

mysqldump -u root -h 127.0.0.1 -ppassport dbname tbname1, tbname2 > backdb.sql

备份系统中所有数据库:  (包括系统数据库)

mysqldump -u root -h 127.0.0.1 -ppassport --lock-all-tables --all-databases > all.sql

恢复

恢复所有数据 方法1:(缺点 若数据中不存在对应数据库需要手动创建)

mysqldump -u root -ppassport -h 127.0.0.1 --all-databases < all.sql

恢复所有数据 方法2:(推荐 优点恢复所有数据)

mysqldump -u root -ppassport -h 127.0.0.1 --all-databases < all.sql

恢复所有数据 方法3:(mysql 命令行)

mysql> source all.sql;

 

问题  mysqldump: Got error: 1044: Access denied for user 'root'@'%' to database 'hhh' when using LOCK TABLES

问题原因:
mysqldump命令执行时,需要四种权限,分别是:select, show view, trigger, lock table。
但是因为没有lock table的权限,导致上述错误发生 解决办法: 在mysqldump命令之后添加–single
-transaction 解决示例: mysqldump --single-transaction -hIP地址 -p3306 -uroot -p密码 数据库名>test.sql

 

posted @ 2022-01-25 13:36  Linux_小白  阅读(42)  评论(0)    收藏  举报