我们平时对只有几M或十几M的mysql数据库的备份与还原一般是直接通过管理工具phpmyadmin来完成,但若是数据库大到上百M或是几百M,那用phpmyadmin的备份和还原功能就不太可取了,不单是备份过程时间长,最大的问题可能就是备份存在不完整的可能性。
那有啥办法即能超快的备份数据库又不会丢数据吗?答案是有的,那就是利用mysql的命令来备份数据,不光备份速度快,而且还不会丢数据,今天就简单的介绍下利用mysql命令来备份和还原数据库的流程,这里的数据库我是装在linux7上面的,对于装在win系统上面的,我们在DOS命令行下进行相应的安装目录便可以进行操作了。
数据库安装路径:/usr/local/mysql/ ,我们先cd进入这个目录。
1,备份mysql数据库
命令格式:bin/mysqldump -h 主机名 -P 端口 -u 用户名 -p --database 数据库名 > 备份文件.sql
注:这里的“-P 端口” 默认是3306,如果没有修改成其他端口,这个参数就不需要加入,备份文件是可以指定路径的,如果不指定默认是备份到了mysql的安装根目录下面。
- 备份指定的数据库powxy为powxy.sql,这里输密码直接备份。
[root@localhost mysql]# bin/mysqldump -u root -h 127.0.0.1 -p --databases wp > wp.sql
Enter password:
- 备份所有数据库,一般只有在升级数据库时可能会用到。
[root@localhost mysql]# bin/mysqldump -u root -h 127.0.0.1 -p --all_databases > databases.sql
Enter password:
2,利用source指令还原mysql数据库。
- source是mysql的一个指令,所以要使用这个指令,我们首先要登录到mysql命令下。
[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -h 127.0.0.1 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5309
Server version: 8.0.13 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
- 然后就要以使用source指令来还原数据库了,上面的备份时我没有指定备份文件的存放目录,所以备份文件应该是存放在mysql的安装目录下面的,所以这里的还原我也就不需要指定还原文件的路径了,若是需要还原其他目录的备份文件这里在source后一定要输入备份文件的绝对路径。
mysql> source wp.sql
回车确定后我们的mysql便开始执行还原命令了,几百M的数据,也就一分多钟,这里我用的双核2G的主机,可以说这个指令在数据库的还原上招待效率还是非常高的。
补充:今天帮一客户恢复一个大的数据库,没有输入还原数据库的sql路径,结果报ERROR: Failed to open file powxy.sql error 2;没有权限,直接加上路径就OK了,如下
mysql> source /usr/local/mysql/data.sql
你好
你好,有问题交流,可随时加我的QQ:538016