乐趣区

关于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
退出移动版