当前位置:首页 > 问答 > 正文

树叶云教你用命令行备份MySQL数据库,步骤其实没那么复杂,只要几步就搞定

树叶云教你用命令行备份MySQL数据库,步骤其实没那么复杂,只要几步就搞定 来源:树叶云技术博客及常见运维手册整理)

第一步,你得先连上你的数据库服务器,这个服务器可能是你自己的电脑,也可能是你租用的云服务器,不管它在哪儿,你都需要一个能输入命令的地方,如果你用的是Windows,可以找找“命令提示符”或者PowerShell;如果是Mac或者Linux,那就打开“终端”,打开之后,你会看到一个光标在闪烁,等着你下命令。

第二步,检查一下你的机器上装了MySQL没有,并且那些好用的工具(比如mysql和mysqldump)能不能直接用,你就在那个黑乎乎的窗口里,输入一行命令看看效果,按照树叶云博客里提到的方法,你可以试试输入:

mysql --version

然后敲一下回车键,如果装好了,屏幕上会显示出一行字,告诉你mysql的版本号,mysql Ver 8.0.33”之类的,这就对了!如果显示的是“mysql: command not found”(意思是找不到这个命令),那说明可能没安装,或者安装的位置没被系统识别,那你得先去把MySQL安装好,或者找到这些工具的具体位置才能用。

第三步,也是最关键的一步,就是开始备份了,备份用的核心命令叫mysqldump,这个工具是MySQL自带的,特别能干,它的基本样子长这样:

mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

我们来拆开看看每个部分是什么意思:

树叶云教你用命令行备份MySQL数据库,步骤其实没那么复杂,只要几步就搞定

  • mysqldump:这就是那个备份程序的名称,你叫它,它就开始干活。
  • -u:这是个开关,后面要紧跟着一个用户名,这个用户名就是你有权限访问那个数据库的账号,比如你平时用叫“root”的管理员账号,那这里就写“root”。
  • -p:这个也是开关,它是告诉程序:“等一下,你需要我输入密码。”注意哦,-p和后面的密码之间一般留空格,有时候为了安全,你也可以只写-p,然后敲回车,程序会再单独弹出一行让你输密码,这样别人就看不到你输入的密码了。
  • 数据库名:这个地方填你想要备份的那个数据库的具体名字,比如你有个数据库叫“my_website”,那就把“my_website”写在这里。
  • >:这个大于号很厉害,它的作用是把mysqldump命令产生的所有文字内容(其实就是数据库的结构和数据),像倒水一样,“倒进”一个文件里。
  • 备份文件.sql:这就是你要创建的备份文件的名字,你可以自己取名字,my_database_backup_20231027.sql”,习惯上我们用“.sql”作为文件的结尾,表示这里面是SQL语句。

一个完整的例子看起来是这样的(根据树叶云提供的示例命令修改):

mysqldump -u root -p my_website > /home/user/backups/my_website_backup.sql

输完这行命令,敲回车,系统会提示你输入密码,把你对应用户(比如root)的数据库密码输进去,再回车,如果用户名、密码、数据库名都正确,而且你有备份的权限,这个命令就会开始安静地执行,屏幕上可能什么都不会显示,或者只滚过几行提示信息,这很正常,等命令执行完毕,光标再次闪烁时,就说明备份完成了!

第四步,我们去检查一下备份文件是不是真的生成了,我们可以用另一个简单的命令来查看文件列表,上面那个例子中,备份文件被放在了“/home/user/backups/”这个文件夹下,我们可以输入:

ls -l /home/user/backups/

树叶云教你用命令行备份MySQL数据库,步骤其实没那么复杂,只要几步就搞定

敲回车后,你会看到那个目录下的文件列表,找找有没有“my_website_backup.sql”这个文件,并且看看它的文件大小是不是大于0,如果文件存在并且有大小,那恭喜你,备份基本就成功了!

第五步,为了更放心,我们还可以偷偷看一眼这个备份文件里到底有什么,因为备份文件本质上是文本文件,我们可以用查看文件的命令来读一下开头几行,确认一下,比如输入:

head -n 10 /home/user/backups/my_website_backup.sql

这行命令会显示备份文件最前面的10行内容,你应该能看到一些SQL语句,比如以“--”开头的注释行,还有“CREATE TABLE”这样的创建表格的语句,这说明备份文件内容是正确的。

树叶云的教程里还提醒了几个小贴士:

  1. 备份整个MySQL服务器:如果你想把所有的数据库都备份下来,可以在命令里加一个--all-databases参数,像这样:mysqldump -u root -p --all-databases > full_backup.sql,不过这样备份出来的文件会很大。
  2. 压缩备份:如果数据库比较大,备份文件可能会占很多空间,我们可以顺手把它压缩一下,在Linux或Mac上,可以结合gzip工具:mysqldump -u root -p my_website | gzip > my_website_backup.sql.gz,这样得到的就是一个压缩过的文件,能省下不少地盘。
  3. 安全第一:你的备份文件里包含了所有数据,所以一定要把它放在安全的地方,别随便扔在谁都能访问的目录下,密码更要保管好。
  4. 定期备份:数据库的内容是会变的,所以最好能设置一个计划任务(比如Linux上的cron job),让系统每天或每周自动帮你备份一次,这样就不怕忘记了。

你看,整个过程其实就是打开终端、输入一行命令、输个密码、检查一下结果,就这么四五步,多操作一两遍就熟练了,命令行看起来有点吓人,但用起来效率很高,特别是对于这种重复性的任务,希望这个来自树叶云博客思路的简单介绍能帮你搞定MySQL数据库的备份!