MySQL字符集備份

2021-10-25 16:39:01 字數 4005 閱讀 6296

字符集介紹

字元(character)是各種文字和符號的總稱,包括各國家文字、標點符號、圖形符號、數字等。字符集(character set)是多個字元的集合,字符集種類較多,每個字符集包含的字元個數不同,常見字符集名稱:ascii字符集、gb2312字符集、big5字符集、 gb18030字符集、unicode字符集等。計算機要準確的處理各種字符集文字,就需要進行字元編碼,以便計算機能夠識別和儲存各種文字。

字符集補充說明:

ascii字符集:american standard code for information interchange,美國資訊互換標準編碼。7位(bits)表示乙個字元,共128字元,字元值從0到127。包括控制字元:回車鍵、退格、換行鍵等。可顯示字元:英文大小寫字元、阿拉伯數字和西文符號。

ascii擴充套件字符集:它是從ascii字符集擴充出來的,擴充後的符號增加了**符號、計算符號、希臘字母和特殊的拉丁符號。ascii擴充套件字符集使用8位(bits)表示乙個字元,共256字元。

unicode字符集編碼是universal multiple-octet coded character set 通用多八位編碼字符集的簡稱,是由乙個名為 unicode 學術學會(unicode consortium)的機構制訂的字元編碼系統,支援現今世界各種不同語言的書面文字的交換、處理及顯示。

utf-8是unicode的其中乙個使用方式。 utf是 unicode tranformation format,即把unicode轉作某種格式的意思。utf-8使用可變長度位元組來儲存 unicode字元,又稱萬國碼。例如ascii字母繼續使用1位元組儲存,重音文字、希臘字母或西里爾字母等使用2位元組來儲存,而常用的漢字就要使用3位元組。輔助平面字元則使用4位元組。

mysqldump對innodb儲存引擎支援熱備,innodb支援事務,我們可以基於事務通過mysqldump對資料庫進行熱備(–single-transaction選項)。

mysqldump對myisam儲存引擎只支援溫備,通過mysqldump對使用myisam儲存引擎的表進行備份時,最多只能實現溫備,因為在備份時會對備份的表請求乙個讀鎖,當備份完成後,鎖會被釋放。

匯出資料:

語法: mysqldump [options] [db_name [tbl_name …]]>匯出的檔名.sql

我們說過mysqldump是乙個客戶端命令,所以,就像使用mysql命令連線資料庫一樣,我們需要指定連線的使用者名稱,需要連線的資料庫服務ip,以及使用-p選提示我們輸入密碼,這些用法都與我們的mysql命令一致。

常用引數:

-?, --help: 顯示幫助資訊,英文的;

-u, --user: 指定連線的使用者名稱;

-p, --password: 指定使用者的密碼,可以互動輸入密碼;

-s , --socket: 指定socket檔案連線,本地登入才會使用。

-h, --host: 指定連線的伺服器名稱或者ip。

-p, --port=: 連線資料庫監聽的埠。

–default-character-set: 設定字符集,預設是utf8。

-a,–all-databases: 匯出所有資料庫。不過預設情況下是不會匯出information_schema庫。

-b, --databases: 匯出指定的某個/或者某幾個資料庫,引數後面所有名字都被看作資料庫名,用空格隔開,包含create database建立庫的語句。

–tables: 匯出指定表物件,引數格式為「庫名 表名」,預設該引數將覆蓋-b引數。

-w, --where: 只匯出符合條件的記錄。

-l, --lock-tables: 預設引數,鎖定讀取的表物件,想匯出一致性備份的話最好使用該引數,但會導致無法對錶執行寫入操作。

–single-transaction:

該選項在匯出資料之前提交乙個begin sql語句,begin 不會阻塞任何應用程式且能保證匯出時資料庫的一致性狀態。它只適用於innodb儲存引擎。

在innodb匯出時會建立一致性快照,在保證匯出資料的一致性前提下,又不會堵塞其他會話的讀寫操作。指定這個引數後,其他連線不能執行alter table、drop table 、rename table、truncate table這類語句,事務的隔離級別無法控制ddl語句。本選項和–lock-tables 選項是互斥的,使用引數–single-transaction會自動關閉該選項。

-d, --no-data: 只匯出表結構,不匯出表資料。

-t, --no-create-info: 只匯出資料,而不新增create table 語句。

-f, --force: 即使遇到sql錯誤,也繼續執行。

-f, --flush-logs: 在執行匯出前先重新整理二進位制日誌檔案,一般來說,如果是全庫匯出,建議先重新整理日誌檔案,否則就不用了。

-x, --lock-all-tables: 在匯出任務執行期間鎖定所有資料庫中的所有表,以保證資料的一致性。這是乙個全域性鎖定,並且自動關閉–single-transaction 和–lock-tables 選項。這個引數***比較大,這是全庫鎖定,備份執行過程中,該庫無法進行讀寫操作,不是所有業務場景都能接受的。請慎用。

-n, --no-create-db: 不生成建庫的語句create database … if exists,即使指定—all-databases或–databases這類引數。

–triggers: 匯出表的觸發器指令碼,預設就是啟用狀態。使用–skip-triggers禁用它。

-r, --outines: 匯出儲存過程以及自定義函式。

a:匯出所有資料庫

#mysqldump -uroot -p123456 -a >all.sql

或#mysqldump -uroot -p123456 --all-databases >all2.sql

引數-a代表所有,等同於—all-databases

b:匯出某個資料庫

mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名.sql

#mysqldump -uroot -p123456 book >book.sql

#vim book.sql

c:匯出單張表

#mysqldump -uroot -p123456 book books >books.sql #匯出book庫books表

d:匯出庫的表結構

#mysqldump -uroot -p123456 -d book>booktable.sql #只匯出book庫的表結構

e:只匯出資料

#mysqldump -uroot -p123456 -t book>bookdata.sql #只匯出book庫中的資料

f:匯出資料庫,並自動生成庫的建立語句

#mysqldump -uroot -p123456 -b book2 >book2.sql

#mysql -uroot -p123456 < book2.sql 匯入不用指定資料名

匯入資料:

a:匯入所有資料庫

#mysql -uroot -p123456 create database book;

使用source匯入

mysql> create database book;

mysql> use book;

mysql> source /root/book.sql

c:匯入表

mysql> drop table books;

mysql> source /root/books.sql; ##匯入表時,不需要重新,建立表。要先進到相應的資料庫中

mysql> select * from books;

d:匯入表結構和資料

mysql> create database book;

#mysql -uroot -p123456 book#mysql -uroot -p123456 book二進位制日誌:binary log & binary log index

一、mysql二進位制日誌概述:

mysql的二進位制日誌記錄著資料庫的所有增、刪、改等操作日誌(前提是要在自己的伺服器上開啟binlog),還包括了這些操作的執行時間。為了顯示這些二進位制內容,我們可以使用mysqlbinlog命令來檢視。

mysql 集群字符集 Mysql 字符集

字符集與字元比較 字符集字符集是某種字元的集合,比如最常見的ascii碼,由127個字元組成,只需要乙個位元組就能表示 我們常說的字符集還是gbk iso utf8 mysql 我們使用得最多的字符集就是gbk 和 utf8了 他們都是變長字符集,如果字元在ascii範圍內就使用乙個位元組表示,其他...

mysql字符集 MySQL字符集選擇

一 怎樣選擇合適的字符集 對mysql資料庫來說,字符集很重要,因為資料庫儲存的資料大部分都是各種文字,字符集對資料庫的儲存,處理效能都會有所影響。主要考慮一下幾方面的因素 1.滿足應用支援語言的需求,應用處理各種各樣的文字,發布到使用不同語言的國家或地區,可以選擇unicode字符集,mysql的...

mysql api 字符集 MySQL字符集

mysql字符集包括字符集 character 和 collation 兩個概念。字符集是用來定義mysql儲存字串的規則,校對規則則是定義了比較字串的方式。字串和校對規則是一對多的 關係。使用命令 show collation like gbk 可檢視相關的校對規則 使用 show charact...