MySql是一个比较流行的关系型数据库。经常和PHP搭配使用。
可以使用mysqldump
进行数据库备份。这里所说的备份其实就是导出一个包含数据库结构和内容的SQL文件。
在需要恢复或导入数据库的时候,可以使用mysql
命令。
# 备份导出 mysqldump -u user -p $db_name > backup.sql # 恢复导入 mysql -u user -p < backup.sql
mysqldump在导出数据过程中默认会LOCK数据库。因此如果用户没有LOCK权限的话,会看到错误:
1044: Access denied for user 'user' to database 'dbname' when using LOCK TABLES
这种情况可以使用--single-transaction
选项,比如:
mysqldump --single-transaction -u user -p $db_name > backup.sql
其他一些常用字的mysqldump用法:
# 备份某个表(table) mysqldump -u user -p $db_name $tbl_name > table.sql # 备份多个数据库 mysqldump --single-transaction -u user -p --databases $db_name1 $db_name2 > db.sql # 备份所有数据库 mysqldump -u user -p --all-databases > all-db.sql
借助 crontab 可以实现数据库的自动备份。