SEARCH

导入导出MySQL数据库和自动备份MySQL数据库

2019年01月11日

经常与MySQL打交道,难免要进行数据库的导入和导出操作,平时你是使用命令操作还是使用工具操作呢?以及数据库自动备份与恢复等容灾措施你都做了吗?本文将简要给大家讲解。

导入MySQL数据库


方法1:使用mysql命令导入数据库

执行命令:

/usr/local/mysql/bin/mysql -u 用户名 -p 数据库名 < 文件名.sql


注意,导入的数据库名必须存在,如果不存在的话先要手动创建数据库或者将创建数据库的代码写在sql文件里。

例如,以下命令就是将sql文件/home/rcloud.sql导入到数据库rcloud中。

/usr/local/mysql/bin/mysql -uroot -p rcloud < /home/rcloud.sql


使用mysql命令可以导入非常大的数据库文件,成功率也非常高,推荐使用该方法。


方法2:使用phpmyadmin或者其他第三方工具导入数据库

phpmyadmin是一款php版MySQL数据库WEB管理工具,你直接可以把phpmyadmin搭建在服务器上,在线管理MySQL。使用phpmyadmin导入数据的时候要注意所上传的文件大小不能超过php环境配置的最大上传大小。此外从安全角度考虑,我不建议大家在生产服务器上部署搭建phpmyadmin。


如果是本地管理数据库可以使用phpmyadmin,还有一款桌面管理软件:navicat,也非常实用。


导出MySQL数据库


方法1:mysqldump命令

执行命令:

/usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名 > 文件名.sql


执行后会提示输入密码,如果数据库用户名没有密码,就将命令中的“-p”参数删除。导出的文件保存在当前目录下,也可以将 文件名.sql 换成绝对路径,如 /home/backup/abc.sql

另外,如果将数据库名换成--all-databases,则会将全部数据库都导出。


方法2:使用phpmyadmin或者第三方工具导出数据库

phpmyadmin导出和导入一样,选择数据库,进到“导出”标签下,点击“执行”即可导出sql文件。如果数据量非常大,我不建议使用phpmyadmin导出数据,有可能会导致超时,并且它要是部署在服务器上真的不安全。另外作为本地开发我们也可以使用navicat来快速导入数据。


导入导出MySQL数据库和自动备份MySQL数据库


自动备份MySQL数据库


自动备份其实就是定时执行数据导出的操作。所谓天有不测风云,我们辛苦经营的网站数据哪天弄丢了的话结果是非常尴尬的。所以我们应该定时或者不定时的备份数据库,视网站项目情况,可以每隔几分钟、几小时、1天会几天备份一次数据库。

脚本:

#!/bin/bashday1=`date -d '-1 days' +%Y%m%d`
day3=`date -d '-3 days' +%Y%m%d`
db1=/home/backup/db-$day1.sql
db3=/home/backup/db-$day3.sqlif [ -f $db3 ]; then
rm -f $db3fi/usr/local/mariadb/bin/mysqldump -uroot -pxxxxxx mydb > $db1


以上脚本的意思是执行导出数据库,导出的文件名按日期格式命名,如果发现sql文件名是3天前的,则删除该文件,即删除3天前的备份文件,这样也可以节省空间。

然后保存文件名为mysqlback.sh,并设置为可执行权限:

chmod +x mysqlback.sh


最后我们使用crontab来定时执行脚本。

1 0 * * * /bin/sh /home/cron/backupmysql.sh >> /dev/null 2>&1


联系地址

大同城区西环路168号

融网建站2017年创立于大同

以企业网站建设开发为核心业务

公众号

微信公众号

小程序

小程序