首頁 資料庫 mysql教程 linux下通过mysqldump备份mysql数据库成sql文件

linux下通过mysqldump备份mysql数据库成sql文件

Jun 07, 2016 pm 05:41 PM
linux系統 mysql備份

linux下通过mysqldump备份mysql数据库成sql文件阶段1:傻瓜式全备份mysqldump-hip地址-uusername-ppassword-A~/name.sql此种情况将整个数据库(结构和数据)导出备

 linux下通过mysqldump备份mysql数据库成sql文件

阶段1:傻瓜式全备份

mysqldump -h ip地址 -uusername -ppassword -A >~/name.sql

此种情况将整个数据库(结构和数据)导出备份成一个sql文件

-----------------------------------------------------------------------------------------------------------------------------------------------

阶段2:适当的调整参数达到不同的备份效果

我们先help一下

mysqldump --help

由于help输出过多就不一一列举出来了

 

通过远程连接备份 

-h 需要备份服务器的地址 

-u 允许远程连接的账号 

-p允许远程连接账号的密码 

-A 全备份

 

常用参数的说明

-A, --all-databases 备份所有数据库

--add-drop-database 在每个create database 语句之前增加一个drop database。

--add-drop-table 在每个create table 语句之前增加一个drop table。

--add-locks 在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)

--default-character-set=name 设置导出数据的字符集

--opt   同--quick --add-drop-table --add-locks --extended-insert --lock-tables。应该给你为读入一个MySQL服务器的尽可能最快的导出。

-e, --extended-insert   使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)。生成的文件insert语句中回事批量的,提高导入时的速度

--hex-blob 使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用本选项。影响到的字段类型有 BINARY、VARBINARY、BLOB。

--quick,-q 该选项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中

-t, --no-create-info 只导出数据

-d, --no-data 只导出结构

----------------------------------------------------------------------------------------------------------------------------------------------

阶段3:备份制定定数据库和制定数据库的某个表

mysqldump -h ip地址 -uusername -ppassword databasename >~/name.sql

mysqldump -h ip地址 -uusername -ppassword databasename tablename >~/name.sql

----------------------------------------------------------------------------------------------------------------------------------------------

阶段4.1:

通过读取文本来分库备份数据库成不同的sql文件

例如我们分别有数据库db1 db2 db3 db4 db5。。。。。。db100当我们每个库数据量都不小的时候需要按数据库分别备份,

我们也不可能100个库分别写成100个备份的脚本运行,这样我们就需要结合shell脚本中的循环语句来操作

cat filename.txt |while read i

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword  $i >~/name.sql

done

其中filename.txt中保存数据库的库名,每行一个。

通过这样的做法再结合linux的crond服务我们就可以自动备份了

阶段4.2

如果需要分库分表备份那该这么办呢

这时候做法和分库的时候一样,分别按每个库生成相应表的表明文件一行一个分别命名为db1.txt db2.txt db3.txt db4.txt db5.txt。。。。。。。db100.txt

通过两次循环分别进行分库分表的备份

 

cat filename.txt |while read i

do

mkdir $i

cat  $i.txt|while read a

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword  $i $a >$i/$a.sql

done

done

当然我们有时候需要记录下备份的时间

fn=$(date +"%Y-%m-%d_%H:%M")

 

cat filename.txt |while read i

do

mkdir $i

cat  $i.txt|while read a

do

备份脚本,美国空间,例如:mysqldump -h ip地址 -uusername -ppassword  $i $a >$i/$a$fn.sql

done

done

 

--------------------------------------------------------------------------------------------------------------------------------------------------

阶段5:

经过第4阶段之后我们的备份更加细致,那部分的数据出问题我们就恢复那部分的(虽然颗粒度还是有些粗)

但是我们是不是觉得第4阶段的备份还是很复杂,例如我们存库名和表明的文件就是一个庞大的工程,美国服务器,新建库我们得在库文件中添加一行

新建表我们得到某个库下面的表的文件中添加一条,这样既繁琐又容易出错,而且容易忘记,维护起来很麻烦。

现在我们有个办法可以让他自动列出库和库下的表

mysql -e

执行

mysql -e "show databases"

得到如下结果

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+--------------------+

但是这样的结果我们没法用,所需要去掉外围的条条框框的东西

mysql -e "show databases"|sed '1d'

information_schema

mysql

performance_schema

test

 

for db in `mysql -e "show databases"|sed '1d'`

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword $db >name.sql

done

参照这个我们同样可以分库分表备份

mysql databasename -e "show tables"|sed '1d'

 

fn=$(date +"%Y-%m-%d_%H:%M")

for db in `mysql -e "show databases"|sed '1d'`

do

mkdir $db

for tables in `mysql  $db -e "show tables"|sed '1d'`

do

备份脚本,例如:mysqldump -h ip地址 -uusername -ppassword $db $tables >$db/$tables$fn.sql

done

done

 

 

暂且完毕,请多指正,美国服务器,如有其它更好方式请留言,一起进步

本文出自 “天马行空” 博客,请务必保留此出处

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
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教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
在 Linux 下使用工作管理員 在 Linux 下使用工作管理員 Aug 15, 2024 am 07:30 AM

有很多Linux初學者經常問起的問題,“Linux有任務管理器嗎?”,“怎樣在Linux上打開任務管理器呢?”來自Windows的用戶都知道任務管理器非常有用。你可以在Windows中按下Ctrl+Alt+Del開啟工作管理員。這個任務管理器向你展示了所有的正在運行的進程和它們消耗的內存,你可以從任務管理器程式中選擇並殺死一個進程。當你剛使用Linux的時候,你也會尋找一個在Linux相當於任務管理器的一個東西。一個Linux使用專家更喜歡使用命令列的方式來尋找進程和消耗的記憶體等等,但是你不用必須

解決Zabbix中文監控伺服器圖形圖表顯示亂碼 解決Zabbix中文監控伺服器圖形圖表顯示亂碼 Jul 31, 2024 pm 02:10 PM

zabbix對中文的支援不是很好,但為了管理方面有時候我們還是會選擇中文,在zabbix監控的web界面,圖形圖標下面的中文會顯示一個個小方塊,這樣是不正確的,需要下載字體。例如“微軟雅黑”,“微軟雅黑.ttf”命名為“msyh.ttf”,將下載的字體上傳到/zabbix/fonts/字體下修改/zabbix/include/defines.inc.php檔案中的兩處define('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

7個方法幫你查看Linux用戶的註冊日期 7個方法幫你查看Linux用戶的註冊日期 Aug 24, 2024 am 07:31 AM

你知道嗎,如何在Linux系統上查看帳戶的建立日期?如果知道,那麼有些什麼辦法。你成功了麼?如果是的話,該怎麼做?基本上Linux系統不會追蹤這些信息,因此,獲取這些資訊的替代方法是什麼?你可能會問為什麼我要去看這個?是的,在某些情況下,你可能需要查看這些信息,那時會對你會有幫助。可以使用以下7種方法進行驗證。使用/var/log/secure使用aureport工具使用.bash_logout使用chage指令使用useradd指令使用passwd指令使用last指令方式1:使用/var/l

如果linux系統下WPS缺失字型導致檔案亂碼該怎麼辦? 如果linux系統下WPS缺失字型導致檔案亂碼該怎麼辦? Jul 31, 2024 am 12:41 AM

1.從網路上找到wingdings、wingdings2、wingdings3、Webdings、MTExtra這些字體2、進入主資料夾,按Ctrl+h鍵(顯示隱藏檔案),查看有沒有.fonts資料夾,如果沒有就建立一個3、把下載下來的wingdings、wingdings2、wingdings3、Webdings、MTExtra這些字體,複製到主資料夾下的.fonts資料夾裡,再去啟動wps看看還有沒有「系統缺少字體…」提醒對話框,沒有就成功了!  注意事項:wingdings、wingdin

5分鐘教你加字體到Fedora 5分鐘教你加字體到Fedora Jul 23, 2024 am 09:45 AM

全系統安裝如果你在系統範圍內安裝字體,那麼它可以讓所有使用者使用。此方式的最佳方法是使用官方軟體庫中的RPM軟體包。開始前開啟FedoraWorkstation中的「Software」工具,或其他使用官方倉庫的工具。選擇橫欄中選擇“Add-ons”類別。接著在該類別中選擇“Fonts”。你會看到類似下面截圖中的可用字體:當你選擇一種字體時,會出現一些細節。根據幾種情況,你可能能夠預覽字體的一些範例文字。點擊“Install”按鈕將其添加到你的系統。根據系統速度和網路頻寬,完成此過程可能需要一些

Centos 7安裝設定NTP網路時間同步伺服器 Centos 7安裝設定NTP網路時間同步伺服器 Aug 05, 2024 pm 10:35 PM

實驗環境:OS:LinuxCentos7.4x86_641.查看目前伺服器時區&列出時區並設定時區(如已是正確時區,請略過):#timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia/Shanghai2.時間時區理解概念: GMT、UTC、CST、DSTUTC:整個地球分為二十四時區,每個時區都有自己的本地時間,在國際無線電通訊場合,為了統一起見,使用一個統一的時間,稱為通用協調時(UTC :UniversalTim

如何使用一條網路線讓兩台ubuntu主機連網 如何使用一條網路線讓兩台ubuntu主機連網 Aug 07, 2024 pm 01:39 PM

如何使用一條網線讓兩台ubuntu主機聯網1、準備主機A:ubuntu16.04主機B:ubuntu16.042、主機A有兩個網卡,一個接外網,一個與主機B相接。使用指令iwconfig可以查看主機所有網路卡。如上圖筆者的A主機(筆記本)上的網卡有:wlp2s0:這個是無線網卡。 enp1s0:有線網路卡,與B主機連接的網路卡。其它與我們無關,無需關心。 3.設定A的靜態IP編輯檔#vim/etc/network/interfaces為介面enp1s0配置靜態IP位址,如下圖(其中#==========

折騰!在樹莓派上運行DOS 折騰!在樹莓派上運行DOS Jul 19, 2024 pm 05:23 PM

不同的CPU架構意味著在樹莓派上運行DOS並非唾手可得,但其實也沒多麻煩。 FreeDOS對大家來說也許並不陌生。它是一個完整、免費且對DOS相容良好的作業系統,它可以運行一些比較老舊的DOS遊戲或商用軟體,也可以開發嵌入式的應用。只要在MS-DOS上能夠運行的程序,在FreeDOS上都可以運行。身為FreeDOS的發起者和專案協調人員,許多使用者會把我當成內行人進行提問。而我最常被問到的問題是:「FreeDOS可以在樹莓派上運行嗎?」這個問題並不令人意外。畢竟Linux在樹莓派上能夠很好地運

See all articles