關於MySQL

mi_zy發表於2013-07-14
MySQL是多使用者,多執行緒的SQL資料庫伺服器。
管理軟體:命令列:mysql,mysqladmin
圖形管理工具:mysql administrator,mysql query brower和mysql workbench
web介面管理工具:phpMyAdmin,phpMyBackupPro
 
二所ATC系統

目前全系統均執行在linux advanced server 5.8上,各子系統均安裝32位作業系統。

資料庫版本:MySQL-server-community-5.1.42-0.rhel4

 

 

備份資料庫:

mysqldump  –uroot  –pabc  atcdb  --opt  –R>/root/ZZZZ.bak

備份與所屬現場有關的表資料:

mysqldump –uroot –pabc atcdb --tables tablename > tablename.bak

mysqldump將在匯出結果前裝載整個結果集到記憶體中,如果你正在匯出一個大的資料庫,這將可能是一個問題。

mysqldump支援下列選項: 

--opt   
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。

 

--add-locks   
在每個表匯出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL)。   
--add-drop-table   
在每個create語句之前增加一個drop table。   
--allow-keywords   
允許建立是關鍵詞的列名字。這由表名字首於每個列名做到。   
-c, --complete-insert   
使用完整的insert語句(用列名字)。   
-C, --compress   
如果客戶和伺服器均支援壓縮,壓縮兩者間所有的資訊。   
--delayed   
用INSERT DELAYED命令插入行。   
-e, --extended-insert   
使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句) 

-l, --lock-tables.   
為開始匯出鎖定所有表。  

-q, --quick   
不緩衝查詢,直接匯出至stdout;使用mysql_use_result()做它。

--routines, -R

匯出儲存過程以及自定義函式。

--------------------------------------------------------------------------------------------
二所ATC資料庫使用的是:MyISAM儲存引擎,表儲存成3個檔案
frm:儲存表的結構
myd儲存資料
myi儲存索引
MyISAM不支援事務的完整性和併發性。
mysql的配置檔案是/etc/my.cnf
檢視錶的儲存引擎:
 1、show table status from atcdb where name='tab_routes' \G;
 Engine: MyISAM
2、 show create table tab_routes' \G;
 
資料檔案儲存目錄:/var/lib/mysql
預設字符集:
show variables like 'collation_%';
      collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
 
show variables like 'character_set__%';
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/
MySQL的字符集支援(Character Set Support)有兩個方面:
      字符集(Character set)和排序方式(Collation)。
對於字符集的支援細化到四個層次:
      伺服器(server),資料庫(database),資料表(table)和連線(connection)。
1.MySQL預設字符集
MySQL對於字符集的指定可以細化到一個資料庫,一張表,一列,應該用什麼字符集。
但是,傳統的程式在建立資料庫和資料表時並沒有使用那麼複雜的配置,它們用的是預設的配置,那麼,預設的配置從何而來呢?     (1)編譯MySQL 時,指定了一個預設的字符集,這個字符集是 latin1;
     (2)安裝MySQL 時,可以在配置檔案 (my.ini) 中指定一個預設的的字符集,如果沒指定,這個值繼承自編譯時指定的;
     (3)啟動mysqld 時,可以在命令列引數中指定一個預設的的字符集,如果沒指定,這個值繼承自配置檔案中的配置,此時 character_set_server 被設定為這個預設的字符集;
     (4)當建立一個新的資料庫時,除非明確指定,這個資料庫的字符集被預設設定為character_set_server;
     (5)當選定了一個資料庫時,character_set_database 被設定為這個資料庫預設的字符集;
     (6)在這個資料庫裡建立一張表時,表預設的字符集被設定為 character_set_database,也就是這個資料庫預設的字符集;
     (7)當在表內設定一欄時,除非明確指定,否則此欄預設的字符集就是表預設的字符集;
修改預設字符集
(1) 最簡單的修改方法,就是修改mysql的my.ini檔案中的字符集鍵值,
如     default-character-set = utf8
       character_set_server = utf8
    修改完後,重啟mysql的服務,service mysql restart
 (2) 還有一種修改字符集的方法,就是使用mysql的命令
    mysql> SET character_set_client = utf8 ;
用rpm包安裝的MySQL是不會安裝/etc/my.cnf檔案的,至於為什麼沒有這個檔案而MySQL卻也能正常啟動和作用,在這有兩個說法,
第一種說法,my.cnf只是MySQL啟動時的一個引數檔案,可以沒有它,這時MySQL會用內建的預設引數啟動;
!第二種說法,MySQL在啟動時自動使用/usr/share/目錄下的my-medium.cnf檔案,這種說法僅限於rpm包安裝的MySQL。(驗證:將my-medium.cnf改名後mysql可以啟動,說明不是使用這個檔案,前提條件:/etc/下沒有my.cnf)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-766225/,如需轉載,請註明出處,否則將追究法律責任。

相關文章