一、数据备份
1.1 备份单个数据库
mysqldump -u root -h host -ppassport dbname > backdb.sql
1.2 备份数据库表
mysqldump -u root -h host -ppassport dbname tbname1, tbname2 > backdb.sql
1.3 备份多个数据库
mysqldump -u root -h host -ppassport --databases dbname1, dbname2 > backdb.sql
1.4 备份系统中所有数据库
$> mysqldump -u root -h host -ppassport --all-databases > backdb.sql
二、数据还原
步骤1: 执行前需要先创建dbname数据库,如果backup.sql是mysqldump创建的备份文件则执行是不需要dbname
mysql -u root -ppassport [dbname] < backup.sql
步骤2: 执行source命令前需要先选择数据库
MYSQL> source backup.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