MySQL中mysqldum数据库的备份和恢复
在mysql中自带了 mysqldum命令可直接能数据库进行备份和恢复操作,下面我来详细的介绍关于MySQL中mysqldum命令的用法。
1、mysqldump
1.1 备份
mysqldump 是采用SQL级别的备份机制,它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法。现在来讲一下 mysqldump 的一些主要参数:
•--compatible=name
它告诉 mysqldump,导出的数据将和哪种数据库或哪个旧版本的 MySQL 服务器相兼容。值可以为 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options 等,要使用几个值,用逗号将它们隔开。当然了,它并不保证能完全兼容,而是尽量兼容。
•--complete-insert,-c
导出的数据采用包含字段名的完整 INSERT 方式,也就是把所有的值都写在一行。这么做能提高插入效率,但是可能会受到 max_allowed_packet 参数的影响而导致插入失败。因此,需要谨慎使用该参数,至少我不推荐。
•--default-character-set=charset
指定导出数据时采用何种字符集,如果数据表不是采用默认的 latin1 字符集的话,那么导出时必须指定该选项,否则再次导入数据后将产生乱码问题。
•--disable-keys
告诉 mysqldump 在 INSERT 语句的开头和结尾增加 /*!40000 ALTER TABLE table DISABLE KEYS */; 和 /*!40000 ALTER TABLE table ENABLE KEYS */; 语句,这能大大提高插入语句的速度,因为它是在插入完所有数据后才重建索引的。该选项只适合 MyISAM 表。
•--extended-insert = true|false
默认情况下,mysqldump 开启 --complete-insert 模式,因此不想用它的的话,就使用本选项,设定它的值为 false 即可。
•--hex-blob
使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。
•--lock-all-tables,-x
在开始导出之前,提交请求锁定所有数据库中的所有表,以保证数据的一致性。这是一个全局读锁,并且自动关闭 --single-transaction 和 --lock-tables 选项。
•--lock-tables
它和 --lock-all-tables 类似,不过是锁定当前导出的数据表,而不是一下子锁定全部库下的表。本选项只适用于 MyISAM 表,如果是 Innodb 表可以用 --single-transaction 选项。
•--no-create-info,-t
只导出数据,而不添加 CREATE TABLE 语句。
•--no-data,-d
不导出任何数据,只导出数据库表结构。
•--opt
这只是一个快捷选项,等同于同时添加 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 选项。本选项能让 mysqldump 很快的导出数据,并且导出的数据能很快导回。该选项默认开启,但可以用 --skip-opt 禁用。注意,如果运行 mysqldump 没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。
•--quick,-q
该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。
•--routines,-R
导出存储过程以及自定义函数。
•--single-transaction
该选项在导出数据之前提交一个 BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。它只适用于事务表,例如 InnoDB 和 BDB。本选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用 --quick 选项。
•--triggers
同时导出触发器。该选项默认启用,用 --skip-triggers 禁用它。
其他参数详情请参考手册,我通常使用以下 SQL 来备份 MyISAM 表:
代码如下 | 复制代码 |
/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x db_name > db_name.sql |
使用以下 SQL 来备份 Innodb 表:
代码如下 | 复制代码 |
/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false |
打开开始->运行->输入cmd进入命令行模式
代码如下 | 复制代码 |
c:>mysqldump -h localhost -u root -p mydb >e:mysqlmydb.sql |
然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。
2.将数据库mydb中的mytable导出到e:mysqlmytable.sql文件中:
代码如下 | 复制代码 |
c:>mysqldump -h localhost -u root -p mydb mytable >e:mysqlmytable.sql |
3.将数据库mydb的结构导出到e:mysqlmydb_stru.sql文件中:
代码如下 | 复制代码 |
c:>mysqldump -h localhost -u root -p mydb --add-drop-table >e:mysqlmydb_stru.sql |
//-h localhost可以省略,其一般在虚拟主机上用
1.2 还原
用 mysqldump 备份出来的文件是一个可以直接倒入的 SQL 脚本,有两种方法可以将数据导入。
从外部文件导入数据到数据库:
例如:
代码如下 | 复制代码 |
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name |
从e:mysqlmydb2.sql中将文件中的SQL语句导入数据库中:
代码如下 | 复制代码 |
c:>mysql -h localhost -u root -p mydb2 |
•用 SOURCE 语法
其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:
代码如下 | 复制代码 |
SOURCE /tmp/db_name.sql; |
这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件。
进入mysql数据库控制台 : 如 mysql -u root -p
代码如下 | 复制代码 |
mysql>use databasename |
然后使用source命令,后面参数为脚本文件(这里用到的是.sql)
代码如下 | 复制代码 |
mysql>source d:mydb.sql |
然后输入密码,就OK了
二.命令行进入MYSQL的方法:
代码如下 | 复制代码 |
C:>mysql -h hostname -u username -p |
按ENTER键,等待然后输入密码,这里hostname为服务器的名称,如localhost,username为MYSQL的用户名,如root.进入命令行就可以直接操作MYSQL了。
关于导入文件大小限制问题的解决:
默认情况下:mysql对导入的文件大小有限制的,最大为2M,所以当文件很大时,直接无法导入,解决列举如下:
1.在php.ini中修改相关参数:
影响Mysql导入文件大小的参数有三个:
代码如下 | 复制代码 |
memory_limit=128M, upload_max_filesize=2M, post_max_size=8M |
修改upload_max_filesize=200M这里修改满足你需要的大小,可以同时修改其他两项memory_limit=250M ,post_max_size=200M.这样就可以导入200M以下的.sql文件了。
上文是把mysql放置在系统路径下,其实不放也可以。如我的mysql安装目录为D:MySQL Server 5.0;则首先打开dos窗口,然后输入D:(没有'')回车;此时应该会出现D:>这样的标志,然后在其后输入D:MySQL Server 5.0bin回车;出现D:MySQL Server 5.0bin>接着输入mysqldump -u root -p 数据库名 >数据库名.sql(也可以输入路径); (具体参照上面)导入文件同样,只是改了'>'为'

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











많은 친구들이 diskgenius 데이터를 복구하는 방법을 모르므로 아래 편집자가 diskgenius 데이터 복구에 대한 관련 튜토리얼을 공유해 보겠습니다. 모두에게 도움이 될 것입니다. 먼저 DiskGenius 메인 인터페이스 위의 하드 디스크 파티션 다이어그램에서 대상 파티션을 직접 선택하고 마우스 오른쪽 버튼을 클릭할 수 있습니다. 그런 다음 나타나는 바로가기 메뉴에서 그림과 같이 "삭제 또는 포맷된 파일 복구" 메뉴 항목을 찾아 클릭하세요. 두 번째 단계에서는 복구 옵션 창이 나타나고 "삭제된 파일 복구", "전체 복구" 및 "알려진 파일 형식에 대한 추가 검사"의 세 가지 옵션을 확인하십시오. 3단계: 오른쪽의 "파일 형식 선택" 버튼을 클릭하고 팝업 창에서 복구해야 하는 파일을 지정합니다.

PHP 매개변수 손실 문제에 대한 해결 방법 PHP 프로그램을 개발하는 과정에서 매개변수 손실 문제가 종종 발생합니다. 이는 프런트엔드에서 전달된 불완전한 매개변수, 백엔드에서 매개변수를 받는 잘못된 방법 등으로 인해 발생할 수 있습니다. 이 기사에서는 특정 코드 예제와 함께 PHP에서 매개변수 누락 문제에 대한 몇 가지 솔루션을 제공합니다. 1. 프런트엔드 매개변수 전달 문제 GET 메소드를 사용하여 매개변수를 전달하는 경우 매개변수가 URL 매개변수 형식으로 요청된 URL에 추가됩니다. 백엔드에서 매개변수를 수신할 때

ThinkPHP6 데이터 백업 및 복구: 데이터 보안 보장 인터넷의 급속한 발전으로 인해 데이터는 매우 중요한 자산이 되었습니다. 따라서 데이터 보안이 매우 중요합니다. 웹 애플리케이션 개발에서 데이터 백업 및 복구는 데이터 보안을 보장하는 중요한 부분입니다. 이 기사에서는 데이터 보안을 보장하기 위해 데이터 백업 및 복구에 ThinkPHP6 프레임워크를 사용하는 방법을 소개합니다. 1. 데이터 백업 데이터 백업은 어떤 방식으로든 데이터베이스에 데이터를 복사하거나 저장하는 것을 말합니다. 이렇게 하면 데이터가

DockerCompose, Nginx 및 MariaDB를 통한 PHP 애플리케이션의 데이터 백업 및 복원 클라우드 컴퓨팅 및 컨테이너화 기술의 급속한 발전으로 인해 점점 더 많은 애플리케이션이 Docker를 사용하여 배포하고 실행하고 있습니다. Docker 생태계에서 DockerCompose는 단일 구성 파일을 통해 여러 컨테이너를 정의하고 관리할 수 있는 매우 널리 사용되는 도구입니다. 이번 글에서는 DockerCompose, Ng 사용법을 소개하겠습니다.

Laravel은 효율적이고 안전하며 확장 가능한 웹 애플리케이션을 구축할 수 있는 빠르고 쉬운 방법을 제공하는 인기 있는 PHP 웹 애플리케이션 프레임워크입니다. Laravel 애플리케이션을 개발할 때 데이터 복구 문제, 즉 데이터 손실이나 손상이 발생한 경우 데이터를 복구하고 애플리케이션의 정상적인 작동을 보장하는 방법을 고려해야 하는 경우가 많습니다. 이 글에서는 Laravel 미들웨어를 사용하여 데이터 복구 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 라라란 무엇인가?

깨진 하드 디스크 섹터를 해결하는 방법 깨진 하드 디스크 섹터는 데이터 손실을 일으키고 컴퓨터 성능에 영향을 미칠 수 있는 일반적인 하드웨어 오류입니다. 불량 하드 드라이브 섹터의 문제를 이해하고 해결하는 것은 매우 중요합니다. 이 기사에서는 하드 디스크 섹터의 개념을 소개하고 하드 디스크 섹터 불량의 일반적인 원인과 해결 방법에 대해 논의합니다. 1. 하드디스크 섹터란 무엇입니까? 불량 하드디스크 섹터 문제를 해결하는 방법을 소개하기 전에 먼저 하드디스크 섹터가 무엇인지부터 알아보겠습니다. 하드 디스크 섹터는 하드 드라이브에서 읽고 쓸 수 있는 가장 작은 공간입니다.

C++ 빅데이터 개발에서 데이터 백업 일관성 문제를 처리하는 방법은 무엇입니까? C++ 빅데이터 개발에서 데이터 백업은 매우 중요한 부분입니다. 데이터 백업의 일관성을 보장하려면 이 문제를 해결하기 위한 일련의 조치를 취해야 합니다. 이 기사에서는 C++ 빅데이터 개발 시 데이터 백업 일관성 문제를 처리하는 방법을 논의하고 해당 코드 예제를 제공합니다. 데이터 백업을 위해 트랜잭션 사용 트랜잭션은 데이터 작업의 일관성을 보장하는 메커니즘입니다. C++에서는 데이터베이스의 트랜잭션 개념을 사용하여 데이터 백업을 구현할 수 있습니다.

MySQL 데이터베이스에서 발생한 실패 및 오류를 신속하게 복구하는 방법은 무엇입니까? MySQL은 많은 애플리케이션과 웹사이트가 데이터를 저장하고 관리하는 데 사용하는 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 그러나 데이터베이스 장애 및 오류는 불가피하며, 이로 인해 데이터가 손실되거나 애플리케이션이 제대로 작동하지 않을 수 있습니다. MySQL 데이터베이스 오류나 오류가 발생하면 데이터베이스를 빠르고 효과적으로 복구하는 것이 매우 중요합니다. 이 문서에서는 MySQL 데이터베이스를 신속하게 복원하는 몇 가지 방법을 소개합니다. 시작하기 전에 결함 및 오류 유형을 결정하십시오.
