字符集介紹
字元(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...