mysqldump数据库备份与还原方法
mysqldump是一款mysql自带的数据库备份还原工具,我想很多朋友都没用吧或一直是用phpmyadmin来操作或是直接在服务器上对数据库进行打包吧,下面我们来看看mysqldump的用法吧.
mysql备份,代码如下:
mysqldump -uroot -proot bookmark > bm.bak
mysqldump -u用户名 -p密码 数据库名> 导出的文件的绝对路径
如果运行mysqldump没有–quick或–opt选项,mysqldump在转储结果前将整个结果集装入内存,如果转储大数据库可能会出现问题,该选项默认启用,但可以用–skip-opt禁用.
使用–skip-opt 将每条数据分开导出,不会一次insert 后面values一大串,代码如下:
mysqldump -uroot -proot–skip-opt bookmark > bm.bak
mysql数据还原,代码如下:
mysql -u root -proot tt <C:UsersyyjDesktopbm.bak
mysql -u用户名 -p密码 数据库名 < 出的备份文件的绝对路径
如果出现ERROR 1214 (HY000) at line 56475: The used table type doesn’t support FULLTEXT indexes
则说明你的原来的表中可能使用全文索引,而现在的引擎不支持.
修改mysql配置文件,代码如下:
- #默认为INNODB
- default-storage-engine=MyISAM --phpfensi.com
mysqldump工具有大量的选项,部分选项如下表:
选项/Option 作用/Action Performed
--add-drop-table:这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除
--add-locks:这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的操作
-c or - complete_insert:这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。
--delayed-insert 在INSERT命令中加入DELAY选项
-F or -flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.
-f or -force 使用这个选项,即使有错误发生,仍然继续导出
--full 这个选项把附加信息也加到CREATE TABLE的语句中.
-l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁.
-t or -no-create- info
这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便.
-d or -no-data 这个选项使的mysqldump命令不创建INSERT语句.
在您只需要DDL语句时,可以使用这个选项.
--opt 此选项将打开所有会提高文件导出速度和创造一个可以更快导入的文件的选项。
-q or -quick 这个选项使得MySQL不会把整个导出的内容读入内存再执行导出,而是在读到的时候就写入导文件中。
-T path or -tab = path 这个选项将会创建两个文件,一个文件包含DDL语句或者表创建语句,另一个文件包含数据。DDL文件被命名为table_name.sql,数据文件被命名为table_name.txt.路径名是存放这两个文件的目录,目录必须已经存在,并且命令的使用者有对文件的特权.
-w "WHERE Clause" or -where = "Where clause "
如前面所讲的,您可以使用这一选项来过筛选将要放到导出文件的数据.
热门评论