怎么备份 MySQL 数据库、MariaDB 数据库(MariaDB 是 MySQL 的社区版本,为方便描述,下面都直接使用 MySQL 数据库统称),以及怎么迁移传输数据库,并且后续恢复 MySQL 数据库。如果是 WordPress 网站,MySQL 数据库存放着整个网站的数据(不包括图片等文件),所以经常备份数据库是非常重要的,毕竟备份起来也不麻烦,还是有事没事多备份一下的好。
以下教程在 Ubuntu 系统上进行,CentOS 上未测试,不保证可用,一般来说没什么问题。
一、备份 / 导出 MySQL / MariaDB 数据库
备份数据库很简单,首先需要登录服务器 SSH,然后一行命令行即可,将下面的命令中的一些参数替换成你的对应参数:
- DB:导出的文件名
- MYSQL_USER:数据库用户名
- MYSQL_PASS:数据库密码
MySQL:
DB=test MYSQL_USER=test MYSQL_PASS=test /usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${DB} > ${DB}.sql
MariaDB:
DB=test MYSQL_USER=test MYSQL_PASS=test /usr/local/mariadb/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${DB} > ${DB}.sql
之后我们就可以在当前目录看到一个导出的 sql 文件了。
二、传输 / 迁移 MySQL / MariaDB 数据库
使用 rsync 或者 scp 都可以。
rsync -avP ${DB}.sql root@1.2.3.4:/home
或者
scp -P 6666 ${DB}.sql root@1.2.3.4:/home
其中,把 1.2.3.4 换成你自己的想存放备份文件的 VPS 的 IP 地址。后面的路径可以自己更换。scp -P 后面是端口号,如果是默认端口,也可以不写。
三、恢复 / 导入 MySQL / MariaDB 数据库
恢复也很简单,同样一句命令即可:
mysql -uMYSQL_USER -pMYSQL_PASS DATABASE_NAME < DATABASE_FILE.sql
其中:
- MYSQL_USER:用户名
- MYSQL_PASS:密码
- DATABASE_NAME:数据库名称
- DATABASE_FILE:你的 sql 文件名
注意:-u 和 -p 后面没有空格。