日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux 定时备份mysql数据库

發布時間:2023/12/10 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 定时备份mysql数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先要先搞清楚兩個概念:

①、mysqldump,mysqldump是mysql的邏輯備份工具,它不是linux的命令,工作原理類似產生一些列sql語句,對數據庫進行指定的邏輯備份。

  最簡潔的形式是:mysqldump??-uuserName -ppassWord --databasesName

當然,可以通過配置參數實現更多功能(請原理我厚顏無恥復制來的配置列表,見附錄1).,多嘮叨一句,進行數據庫操作時請注意是否有相應的數據庫權限。

②crontab 這是個linux系統命令,是用來定期執行程序的命令。

  說道crontab肯定要了解時程表的概念,先看格式:

f1 f2 f3 f4 f5 program

如果不好理解的話,f1到f5表示時間,program表示要干的事。例如:1 1 * * * /usr/todo.sh? 每天1點1分執行todo.sh文件。請注意todo.sh的權限問題。

?

好吧,進入正題,開始配置mysql的定時備份:

vi /etc/crontab??? vi編譯器打開定時任務,

在最后加入? 07 19 * * * root /usr/test/test.sh,定時執行test.sh文件
前往 /usr/test/目錄, 執行 vi test.sh 創建文件并進入,

鍵入 mysqldump -uroot -proot mysql | gzip > /usr/test/`date +%Y-%m-%d_%H%M%S`.sql.gz
上面這條命令的含義是:備份root用戶下mysql數據庫,生成 日期.sql 文件并壓縮。


?

?

?

1 附錄1

  --all-databases , -A 2 3 導出全部數據庫。 4 5 mysqldump -uroot -p --all-databases 6 7 --all-tablespaces , -Y 8 9 導出全部表空間。 10 11 mysqldump -uroot -p --all-databases --all-tablespaces 12 13 --no-tablespaces , -y 14 15 不導出任何表空間信息。 16 17 mysqldump -uroot -p --all-databases --no-tablespaces 18 19 --add-drop-database 20 21 每個數據庫創建之前添加drop數據庫語句。 22 23 mysqldump -uroot -p --all-databases --add-drop-database 24 25 --add-drop-table 26 27 每個數據表創建之前添加drop數據表語句。(默認為打開狀態,使用--skip-add-drop-table取消選項) 28 29 mysqldump -uroot -p --all-databases (默認添加drop語句) 30 31 mysqldump -uroot -p --all-databases –skip-add-drop-table (取消drop語句) 32 33 --add-locks 34 35 在每個表導出之前增加LOCK TABLES并且之后UNLOCK TABLE。(默認為打開狀態,使用--skip-add-locks取消選項) 36 37 mysqldump -uroot -p --all-databases (默認添加LOCK語句) 38 39 mysqldump -uroot -p --all-databases –skip-add-locks (取消LOCK語句) 40 41 --allow-keywords 42 43 允許創建是關鍵詞的列名字。這由表名前綴于每個列名做到。 44 45 mysqldump -uroot -p --all-databases --allow-keywords 46 47 --apply-slave-statements 48 49 在'CHANGE MASTER'前添加'STOP SLAVE',并且在導出的最后添加'START SLAVE'。 50 51 mysqldump -uroot -p --all-databases --apply-slave-statements 52 53 --character-sets-dir 54 55 字符集文件的目錄 56 57 mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets 58 59 --comments 60 61 附加注釋信息。默認為打開,可以用--skip-comments取消 62 63 mysqldump -uroot -p --all-databases (默認記錄注釋) 64 65 mysqldump -uroot -p --all-databases --skip-comments (取消注釋) 66 67 --compatible 68 69 導出的數據將和其它數據庫或舊版本的MySQL 相兼容。值可以為ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_tables_options、no_field_options等, 70 71 要使用幾個值,用逗號將它們隔開。它并不保證能完全兼容,而是盡量兼容。 72 73 mysqldump -uroot -p --all-databases --compatible=ansi 74 75 --compact 76 77 導出更少的輸出信息(用于調試)。去掉注釋和頭尾等結構。可以使用選項:--skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys 78 79 mysqldump -uroot -p --all-databases --compact 80 81 --complete-insert, -c 82 83 使用完整的insert語句(包含列名稱)。這么做能提高插入效率,但是可能會受到max_allowed_packet參數的影響而導致插入失敗。 84 85 mysqldump -uroot -p --all-databases --complete-insert 86 87 --compress, -C 88 89 在客戶端和服務器之間啟用壓縮傳遞所有信息 90 91 mysqldump -uroot -p --all-databases --compress 92 93 --create-options, -a 94 95 在CREATE TABLE語句中包括所有MySQL特性選項。(默認為打開狀態) 96 97 mysqldump -uroot -p --all-databases 98 99 --databases, -B 100 101 導出幾個數據庫。參數后面所有名字參量都被看作數據庫名。 102 103 mysqldump -uroot -p --databases test mysql 104 105 --debug 106 107 輸出debug信息,用于調試。默認值為:d:t:o,/tmp/mysqldump.trace 108 109 mysqldump -uroot -p --all-databases --debug 110 111 mysqldump -uroot -p --all-databases --debug=” d:t:o,/tmp/debug.trace” 112 113 --debug-check 114 115 檢查內存和打開文件使用說明并退出。 116 117 mysqldump -uroot -p --all-databases --debug-check 118 119 --debug-info 120 121 輸出調試信息并退出 122 123 mysqldump -uroot -p --all-databases --debug-info 124 125 --default-character-set 126 127 設置默認字符集,默認值為utf8 128 129 mysqldump -uroot -p --all-databases --default-character-set=latin1 130 131 --delayed-insert 132 133 采用延時插入方式(INSERT DELAYED)導出數據 134 135 mysqldump -uroot -p --all-databases --delayed-insert 136 137 --delete-master-logs 138 139 master備份后刪除日志. 這個參數將自動激活--master-data。 140 141 mysqldump -uroot -p --all-databases --delete-master-logs 142 143 --disable-keys 144 145 對于每個表,用/*!40000 ALTER TABLE tbl_name DISABLE KEYS */;和/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;語句引用INSERT語句。這樣可以更快地導入dump出來的文件,因為它是在插入所有行后創建索引的。該選項只適合MyISAM表,默認為打開狀態。 146 147 mysqldump -uroot -p --all-databases 148 149 --dump-slave 150 151 該選項將導致主的binlog位置和文件名追加到導出數據的文件中。設置為1時,將會以CHANGE MASTER命令輸出到數據文件;設置為2時,在命令前增加說明信息。該選項將會打開--lock-all-tables,除非--single-transaction被指定。該選項會自動關閉--lock-tables選項。默認值為0。 152 153 mysqldump -uroot -p --all-databases --dump-slave=1 154 155 mysqldump -uroot -p --all-databases --dump-slave=2 156 157 --events, -E 158 159 導出事件。 160 161 mysqldump -uroot -p --all-databases --events 162 163 --extended-insert, -e 164 165 使用具有多個VALUES列的INSERT語法。這樣使導出文件更小,并加速導入時的速度。默認為打開狀態,使用--skip-extended-insert取消選項。 166 167 mysqldump -uroot -p --all-databases 168 169 mysqldump -uroot -p --all-databases--skip-extended-insert (取消選項) 170 171 --fields-terminated-by 172 173 導出文件中忽略給定字段。與--tab選項一起使用,不能用于--databases和--all-databases選項 174 175 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#” 176 177 --fields-enclosed-by 178 179 輸出文件中的各個字段用給定字符包裹。與--tab選項一起使用,不能用于--databases和--all-databases選項 180 181 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#” 182 183 --fields-optionally-enclosed-by 184 185 輸出文件中的各個字段用給定字符選擇性包裹。與--tab選項一起使用,不能用于--databases和--all-databases選項 186 187 mysqldump -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#” --fields-optionally-enclosed-by =”#” 188 189 --fields-escaped-by 190 191 輸出文件中的各個字段忽略給定字符。與--tab選項一起使用,不能用于--databases和--all-databases選項 192 193 mysqldump -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#” 194 195 --flush-logs 196 197 開始導出之前刷新日志。 198 199 請注意:假如一次導出多個數據庫(使用選項--databases或者--all-databases),將會逐個數據庫刷新日志。除使用--lock-all-tables或者--master-data外。在這種情況下,日志將會被刷新一次,相應的所以表同時被鎖定。因此,如果打算同時導出和刷新日志應該使用--lock-all-tables 或者--master-data 和--flush-logs。 200 201 mysqldump -uroot -p --all-databases --flush-logs 202 203 --flush-privileges 204 205 在導出mysql數據庫之后,發出一條FLUSH PRIVILEGES 語句。為了正確恢復,該選項應該用于導出mysql數據庫和依賴mysql數據庫數據的任何時候。 206 207 mysqldump -uroot -p --all-databases --flush-privileges 208 209 --force 210 211 在導出過程中忽略出現的SQL錯誤。 212 213 mysqldump -uroot -p --all-databases --force 214 215 --help 216 217 顯示幫助信息并退出。 218 219 mysqldump --help 220 221 --hex-blob 222 223 使用十六進制格式導出二進制字符串字段。如果有二進制數據就必須使用該選項。影響到的字段類型有BINARY、VARBINARY、BLOB。 224 225 mysqldump -uroot -p --all-databases --hex-blob 226 227 --host, -h 228 229 需要導出的主機信息 230 231 mysqldump -uroot -p --host=localhost --all-databases 232 233 --ignore-table 234 235 不導出指定表。指定忽略多個表時,需要重復多次,每次一個表。每個表必須同時指定數據庫和表名。例如:--ignore-table=database.table1 --ignore-table=database.table2 …… 236 237 mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user 238 239 --include-master-host-port 240 241 在--dump-slave產生的'CHANGE MASTER TO..'語句中增加'MASTER_HOST=<host>,MASTER_PORT=<port>' 242 243 mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port 244 245 --insert-ignore 246 247 在插入行時使用INSERT IGNORE語句. 248 249 mysqldump -uroot -p --host=localhost --all-databases --insert-ignore 250 251 --lines-terminated-by 252 253 輸出文件的每行用給定字符串劃分。與--tab選項一起使用,不能用于--databases和--all-databases選項。 254 255 mysqldump -uroot -p --host=localhost test test --tab=”/tmp/mysql” --lines-terminated-by=”##” 256 257 --lock-all-tables, -x 258 259 提交請求鎖定所有數據庫中的所有表,以保證數據的一致性。這是一個全局讀鎖,并且自動關閉--single-transaction 和--lock-tables 選項。 260 261 mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables 262 263 --lock-tables, -l 264 265 開始導出前,鎖定所有表。用READ LOCAL鎖定表以允許MyISAM表并行插入。對于支持事務的表例如InnoDB和BDB,--single-transaction是一個更好的選擇,因為它根本不需要鎖定表。 266 267 請注意當導出多個數據庫時,--lock-tables分別為每個數據庫鎖定表。因此,該選項不能保證導出文件中的表在數據庫之間的邏輯一致性。不同數據庫表的導出狀態可以完全不同。 268 269 mysqldump -uroot -p --host=localhost --all-databases --lock-tables 270 271 --log-error 272 273 附加警告和錯誤信息到給定文件 274 275 mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err 276 277 --master-data 278 279 該選項將binlog的位置和文件名追加到輸出文件中。如果為1,將會輸出CHANGE MASTER 命令;如果為2,輸出的CHANGE MASTER命令前添加注釋信息。該選項將打開--lock-all-tables 選項,除非--single-transaction也被指定(在這種情況下,全局讀鎖在開始導出時獲得很短的時間;其他內容參考下面的--single-transaction選項)。該選項自動關閉--lock-tables選項。 280 281 mysqldump -uroot -p --host=localhost --all-databases --master-data=1; 282 283 mysqldump -uroot -p --host=localhost --all-databases --master-data=2; 284 285 --max_allowed_packet 286 287 服務器發送和接受的最大包長度。 288 289 mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240 290 291 --net_buffer_length 292 293 TCP/IP和socket連接的緩存大小。 294 295 mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024 296 297 --no-autocommit 298 299 使用autocommit/commit 語句包裹表。 300 301 mysqldump -uroot -p --host=localhost --all-databases --no-autocommit 302 303 --no-create-db, -n 304 305 只導出數據,而不添加CREATE DATABASE 語句。 306 307 mysqldump -uroot -p --host=localhost --all-databases --no-create-db 308 309 --no-create-info, -t 310 311 只導出數據,而不添加CREATE TABLE 語句。 312 313 mysqldump -uroot -p --host=localhost --all-databases --no-create-info 314 315 --no-data, -d 316 317 不導出任何數據,只導出數據庫表結構。 318 319 mysqldump -uroot -p --host=localhost --all-databases --no-data 320 321 --no-set-names, -N 322 323 等同于--skip-set-charset 324 325 mysqldump -uroot -p --host=localhost --all-databases --no-set-names 326 327 --opt 328 329 等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 該選項默認開啟, 可以用--skip-opt禁用. 330 331 mysqldump -uroot -p --host=localhost --all-databases --opt 332 333 --order-by-primary 334 335 如果存在主鍵,或者第一個唯一鍵,對每個表的記錄進行排序。在導出MyISAM表到InnoDB表時有效,但會使得導出工作花費很長時間。 336 337 mysqldump -uroot -p --host=localhost --all-databases --order-by-primary 338 339 --password, -p 340 341 連接數據庫密碼 342 343 --pipe(windows系統可用) 344 345 使用命名管道連接mysql 346 347 mysqldump -uroot -p --host=localhost --all-databases --pipe 348 349 --port, -P 350 351 連接數據庫端口號 352 353 --protocol 354 355 使用的連接協議,包括:tcp, socket, pipe, memory. 356 357 mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp 358 359 --quick, -q 360 361 不緩沖查詢,直接導出到標準輸出。默認為打開狀態,使用--skip-quick取消該選項。 362 363 mysqldump -uroot -p --host=localhost --all-databases 364 365 mysqldump -uroot -p --host=localhost --all-databases --skip-quick 366 367 --quote-names,-Q 368 369 使用(`)引起表和列名。默認為打開狀態,使用--skip-quote-names取消該選項。 370 371 mysqldump -uroot -p --host=localhost --all-databases 372 373 mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names 374 375 --replace 376 377 使用REPLACE INTO 取代INSERT INTO. 378 379 mysqldump -uroot -p --host=localhost --all-databases --replace 380 381 --result-file, -r 382 383 直接輸出到指定文件中。該選項應該用在使用回車換行對(\\r\\n)換行的系統上(例如:DOS,Windows)。該選項確保只有一行被使用。 384 385 mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt 386 387 --routines, -R 388 389 導出存儲過程以及自定義函數。 390 391 mysqldump -uroot -p --host=localhost --all-databases --routines 392 393 --set-charset 394 395 添加'SET NAMES default_character_set'到輸出文件。默認為打開狀態,使用--skip-set-charset關閉選項。 396 397 mysqldump -uroot -p --host=localhost --all-databases 398 399 mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset 400 401 --single-transaction 402 403 該選項在導出數據之前提交一個BEGIN SQL語句,BEGIN 不會阻塞任何應用程序且能保證導出時數據庫的一致性狀態。它只適用于多版本存儲引擎,僅InnoDB。本選項和--lock-tables 選項是互斥的,因為LOCK TABLES 會使任何掛起的事務隱含提交。要想導出大表的話,應結合使用--quick 選項。 404 405 mysqldump -uroot -p --host=localhost --all-databases --single-transaction 406 407 --dump-date 408 409 將導出時間添加到輸出文件中。默認為打開狀態,使用--skip-dump-date關閉選項。 410 411 mysqldump -uroot -p --host=localhost --all-databases 412 413 mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date 414 415 --skip-opt 416 417 禁用–opt選項. 418 419 mysqldump -uroot -p --host=localhost --all-databases --skip-opt 420 421 --socket,-S 422 423 指定連接mysql的socket文件位置,默認路徑/tmp/mysql.sock 424 425 mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock 426 427 --tab,-T 428 429 為每個表在給定路徑創建tab分割的文本文件。注意:僅僅用于mysqldump和mysqld服務器運行在相同機器上。 430 431 mysqldump -uroot -p --host=localhost test test --tab="/home/mysql" 432 433 --tables 434 435 覆蓋--databases (-B)參數,指定需要導出的表名。 436 437 mysqldump -uroot -p --host=localhost --databases test --tables test 438 439 --triggers 440 441 導出觸發器。該選項默認啟用,用--skip-triggers禁用它。 442 443 mysqldump -uroot -p --host=localhost --all-databases --triggers 444 445 --tz-utc 446 447 在導出頂部設置時區TIME_ZONE='+00:00' ,以保證在不同時區導出的TIMESTAMP 數據或者數據被移動其他時區時的正確性。 448 449 mysqldump -uroot -p --host=localhost --all-databases --tz-utc 450 451 --user, -u 452 453 指定連接的用戶名。 454 455 --verbose, --v 456 457 輸出多種平臺信息。 458 459 --version, -V 460 461 輸出mysqldump版本信息并退出 462 463 --where, -w 464 465 只轉儲給定的WHERE條件選擇的記錄。請注意如果條件包含命令解釋符專用空格或字符,一定要將條件引用起來。 466 467 mysqldump -uroot -p --host=localhost --all-databases --where=” user=’root’” 468 469 --xml, -X 470 471 導出XML格式. 472 473 mysqldump -uroot -p --host=localhost --all-databases --xml 474 475 --plugin_dir 476 477 客戶端插件的目錄,用于兼容不同的插件版本。 478 479 mysqldump -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin” 480 481 --default_auth 482 483 客戶端插件默認使用權限。 484 485 mysqldump -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/<PLUGIN>

?

轉載于:https://www.cnblogs.com/dreamowneryong/p/5622739.html

總結

以上是生活随笔為你收集整理的linux 定时备份mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。