首頁 資料庫 mysql教程 mysqldump,source数据备份与还原方法

mysqldump,source数据备份与还原方法

Jun 07, 2016 pm 05:52 PM

文章介绍了mysql中的mysqldump,source命令进行数据备份与还原方法,有需要的朋友可参考一下本文章哦。

还原一个数据库:

 代码如下 复制代码
mysql -h localhost -u root -p123456 www

备份一个数据库:

 代码如下 复制代码
mysqldump -h localhost -u root -p123456 www > d:/www2008-2-26.sql

本地:
1.进入MySQL目录下的bin文件夹:e:回车;

e:>cd mysqlbin  回车

2.导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

 代码如下 复制代码
mysqldump -uroot -p abc > abc.sql

(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码(如果导出单张表的话在数据库名后面输入表名即可)

如果提示locktable错误:则在mysqldump -uroot -p abc后面空一格加上--skip-lock-tables

3、会看到文件news.sql自动生成到bin文件下


.Linux下MySQL的备份与还原
2.1 备份

 代码如下 复制代码
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。

2.2 还原

 代码如下 复制代码
法一:
[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。
法二:
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysql -u root -p voice


常用命令


备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

 代码如下 复制代码
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接将MySQL数据库压缩备份

 代码如下 复制代码
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

备份MySQL数据库某个(些)表

 代码如下 复制代码
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同时备份多个MySQL数据库

 代码如下 复制代码
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构

 代码如下 复制代码
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

备份服务器上所有数据库

 代码如下 复制代码
mysqldump –all-databases > allbackupfile.sql

还原MySQL数据库的命令

 代码如下 复制代码
mysql -hhostname -uusername -ppassword databasename

还原压缩的MySQL数据库
gunzip

将数据库转移到新服务器

 代码如下 复制代码
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

 

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
--triggers -R --hex-blob --single-transaction db_name > db_name.sql

另外,如果想要实现在线备份,还可以使用 --master-data 参数来实现,如下:

 代码如下 复制代码

/usr/local/mysql/bin/mysqldump -uyejr -pyejr
--default-character-set=utf8 --opt --master-data=1
--single-transaction --flush-logs db_name > db_name.sql

它只是在一开始的瞬间请求锁表,然后就刷新binlog了,而后在导出的文件中加入CHANGE MASTER 语句来指定当前备份的binlog位置,如果要把这个文件恢复到slave里去,就可以采用这种方法来做。

1.2 还原

用 SOURCE 语法

其实这不是标准的 SQL 语法,而是 mysql 客户端提供的功能,例如:

 代码如下 复制代码

SOURCE /tmp/db_name.sql;

这里需要指定文件的绝对路径,并且必须是 mysqld 运行用户(例如 nobody)有权限读取的文件

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
Source Insight在Ubuntu系統中的使用方法解析 Source Insight在Ubuntu系統中的使用方法解析 Jan 08, 2024 pm 11:49 PM

我相信很多朋友在Windows下都習慣用SourceInsight來閱讀分析原始碼了,對於LINUX下面的工具,確實有比較高效的,配置起來起對比較麻煩,也比較繁瑣,相信很多人肯定希望能在Linux下面也能用到SourceInsight,以下小編將為大家帶來Ubuntu中SourceInsight的使用詳解!一起去看看吧!這是我的系統資訊:Linuxgavin-laptop2.6.32-40-generic#87-UbuntuSMPTueMar600:56:56UTC2012x86_64GNU/Li

source是什麼按鍵呢 source是什麼按鍵呢 Oct 10, 2023 pm 03:26 PM

source是切換輸入訊號來源或選擇不同的輸入來源的按鍵。通常出現在電視、投影機、音響系統、電腦顯示器等設備上。在電視上,source按鍵可以讓使用者切換不同的輸入來源,從而在電視上播放不同的內容。在投影機上,source按鍵的作用類似,可以將不同的裝置連接到投影機。在音響系統上,source按鍵用於切換不同的音訊輸入來源。在電腦顯示器上,source按鍵的作用與電視和投影機類似等等。

透過Docker Compose、Nginx和MariaDB實現PHP應用程式的資料備份與還原 透過Docker Compose、Nginx和MariaDB實現PHP應用程式的資料備份與還原 Oct 12, 2023 am 11:14 AM

透過DockerCompose、Nginx和MariaDB實現PHP應用程式的資料備份與還原隨著雲端運算和容器化技術的快速發展,越來越多的應用程式選擇使用Docker來部署和運行。在Docker生態系統中,DockerCompose是一個非常受歡迎的工具,它可以透過一個單一的設定檔來定義和管理多個容器。本文將介紹如何使用DockerCompose、Ng

ThinkPHP6資料備份與復原:保障資料的安全性 ThinkPHP6資料備份與復原:保障資料的安全性 Aug 13, 2023 am 08:28 AM

ThinkPHP6資料備份與復原:保障資料的安全性隨著網路的快速發展,資料已成為極為重要的資產。因此,資料的安全性備受關注。在Web應用開發中,資料備份與復原是確保資料安全的重要一環。在本文中,我們將介紹如何使用ThinkPHP6框架進行資料備份與恢復,以保障資料的安全性。一、資料備份資料備份是指將資料庫中的資料以某種方式複製或儲存。這樣即使在數據

如何處理C++大數據開發中的資料備份一致性問題? 如何處理C++大數據開發中的資料備份一致性問題? Aug 26, 2023 pm 11:15 PM

如何處理C++大數據開發中的資料備份一致性問題?在C++大數據開發中,資料備份是非常重要的一環。為了確保資料備份的一致性,我們需要採取一系列的措施來解決這個問題。本文將探討如何處理C++大數據開發中的資料備份一致性問題,並提供對應的程式碼範例。使用交易進行資料備份交易是一種保證資料操作的一致性的機制。在C++中,我們可以使用資料庫中的交易概念來實現資料備份的一

如何利用Laravel實現資料備份與復原功能 如何利用Laravel實現資料備份與復原功能 Nov 02, 2023 pm 01:18 PM

如何利用Laravel實現資料備份和復原功能隨著網際網路的發展,資料備份和復原功能成為了重要的需求。在web應用中,資料備份和復原功能可以確保資料的安全性和可靠性,同時也提供了一種應對突發情況的緊急手段。 Laravel作為一種流行的PHP框架,具備強大的資料處理和資料庫操作能力,因此可以輕鬆實現資料備份和復原功能。本文將介紹如何利用Laravel實現資料備

資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討 資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討 Sep 08, 2023 am 09:03 AM

資料備份與故障復原:MySQL主從複製在叢集模式下的重要性探討引言:近年來,隨著資料規模和複雜性的不斷增長,資料庫的備份和故障復原變得尤為重要。在分散式系統中,MySQL主從複製在叢集模式下被廣泛應用,以提供高可用性和容錯性。本文將探討MySQL主從複製在叢集模式下的重要性,並給出一些程式碼範例。一、MySQL主從複製的基本原理及優勢MySQL主從複製是一種通

全球數字虛擬幣交易平台排行榜前十(2025權威排名) 全球數字虛擬幣交易平台排行榜前十(2025權威排名) Mar 06, 2025 pm 04:36 PM

2025年全球數字虛擬幣交易平台競爭激烈,本文根據交易量、安全性、用戶體驗等指標,權威發布2025年全球十大數字虛擬幣交易平台排行榜。 OKX憑藉強大的技術實力和全球化運營策略居首,Binance以高流動性和低費用緊隨其後。 Gate.io、Coinbase、Kraken等平台憑藉各自優勢穩居前列。榜單涵蓋Huobi、KuCoin、Bitfinex、Crypto.com和Gemini等交易平台,各有特色,但投資需謹慎。選擇平台需考慮安全性、流動性、費用、用戶體驗、幣種選擇及監管合規性等因素,理性投資

See all articles