备份:backup database dbname to disk=' d:\dbn.aa';
恢复:restore database dbname from disk=' d:\dbn.aa';
使用MYSQL进行数据库备份,网上说的方法有2种:一种是用文件夹覆盖,一种是用官方的mysqldump.exe来备份,参考网上的教程,结合实际,本人提供以下几个参考意见:
一、文件夹覆盖备份法(网上教程)
目的:备份hostA主机中一个mysql数据库TestA,并恢复到到hostB机中
试验环境:
操作系统:WinXPsp2,Mysql4.1.8,MySQL-Front.
在hostA中安装mysql数据库并建立TestA数据库
hostB机安装mysql数据库,没有TestA数据库
方法步骤:
启动MySQL-Front察看HostA和HostB中的数据库列表,在HostB中没有TestA数据库
找到HostA中mysql的安装目录,并找到数据库目录data
在我的试验环境中,这个目录是
C:\Program Files\MySQL\MySQL Server 4.1\data
找到对应数据库名称的子目录
C:\Program Files\MySQL\MySQL Server 4.1\data\TestA
找到HostA中的目录MySQL Datafiles
在我的试验环境中,这个目录是
C:\MySQL Datafiles
将这个目录 覆盖HostB的MySQL Datafiles目录。
刷新HostB的MySQL-Front察看一下数据库列表,我们看到TestA已经出现,并且作查询修改等操作都正常,备份恢复恢复成功。
试验结论:Mysql的数据库可以通过文件形式保存,备份,恢复只要将相应文件目录恢复即可,无需使用其它工具备份。
本人测试结果:我使用的是MySQL 5.0.8的,经过以上方法测试失败!
二、正规的方法(官方建议):
导出要用到MySQL的mysqldump工具,基本用法是:
mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
一般使用的命令:
mysqldump --quick --database ondemand1 --u root >bacqup.sql
这样就能把数据库中ondemand1的表全部备份出来。
其中参数的格式是:--(两横杠,不是我们常用的单横杠)
quick是在数据比较多的时候,不用该参数的话,所有的数据都会先在内存缓存,接着才导出,这样会导致服务器运行减慢!
--u 必须要加一个用户名,否则系统会提示你进不了ODBC数据库的。
>backup.sql则是你备份数据库的目标文件名
数据导入:
可以使用MySQL-Front工具把上面导出的backup.sql数据库导入执行。
以下导入方法未测试是否可行!
导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:
mysqladmin create target_db_name
mysql target_db_name < backup-file.sql
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · mysql创建用户并赋予权限
- · docker定时任务Mysql脚本
- · docker安装mysql8注意事项
- · 定时备份docker中的mysql
- · docker-compose通过容器名连接mysql
- · unity3d mysql error: The given key was not present in the dictionary.
- · mysql服务性能优化—my.cnf配置说明详解(不同内存)
- · MySQL 批量修改数据表编码及字符集
- · Your database must use ‘READ-COMMITTED’ as the default isolation level.
- · MySQL-InnoDB存储引擎
- · 将数据从mysql迁移到clickhouse
- · docker安装Mysql5.7