关于mysql: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;

问题

问题1: 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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理