mysql5.0試用筆記(1) 安裝 配置

轉貼http://flyeruo.bokee.com/viewdiary.14890416.html

參考 ︰http://info.mysql.cn/install/2006/0208/81.html

http://man.chinaunix.net/database/mysql/inonodb_zh/

http://www.faq-it.org/archives/mysql/edee477f0a1951f517b7c19aedbdb3ac.php

http://dev.csdn.net/Develop/article/18/18555.shtm

http://news.csdn.net/n/20061122/98014.html

 

配置 InnoDB

 

庫檔案目錄

innodb_data_home_dir = “E:data"

 

表空間定義 建立3個庫檔案

檔案聲明格式: file_name:file_size[:autoextend[:max:max_file_size]]

innodb_data_file_path = ibdata1:100M;ibdata2:100M;ibdata3:100M

 

由於Innodb把數據和索引都緩存起來,無需留給作業系統太多的內存,因此如果只需要用Innodb的話則可以設定它高達 50-80% 的可用內存。如果你的數據量不大,並且不會暴增,那麼無需把 innodb_buffer_pool_size 設定的太大了

innodb_buffer_pool_size = 64M

 

存儲數據字典訊息和內部架構訊息, 如果你的表越多,這個需要的內存就越多,如果你預留的空間不夠,就開始象系統申請內存

innodb_additional_mem_pool_size=5M

 

#日誌檔案配置

#log_arch_dir 必須和 log_group_home_dir 一樣

innodb_log_group_home_dir = “E:data"

innodb_log_arch_dir = “E:data"

 

innodb_log_file_size 在高寫入負載尤其是大數據集的情況下很重要。這個值越大則性能相對越高,但是要注意到可能會增加恢復時間。我經常設定為 64-512MB,跟據伺服器大小而異

innodb_log_archive=0

innodb_log_files_in_group = 3

innodb_log_file_size=32M

 

#預設的設定在中等強度寫入負載以及較短事務的情況下,伺服器性能還可以。如果存在更新操作峰值或者負載較大,就應該考慮加大它的值了。如果它的值設定太高了,可能會浪費內存 — 它每秒都會刷新一次,因此無需設定超過1秒所需的內存空間。通常 8-16MB 就足夠了。

innodb_log_buffer_size=8M

 

預設值是 1,這意味著每次提交的更新事務(或者每個事務之外的語句)都會刷新到磁片中,而這相當耗費資源。很多應用程式,尤其是從 MyISAM轉變過來的那些,把它的值設定為 2 就可以了,也就是不把日誌刷新到磁片上,而只刷新到作業系統的緩存上。日誌仍然會每秒刷新到磁片中去,因此通常不會丟失每秒1-2次更新的消耗。如果設定為 0 就快很多了,不過也相對不安全了 MySQL伺服器崩潰時就會丟失一些事務。

innodb_flush_log_at_trx_commit=1

innodb_file_io_threads=4

innodb_lock_wait_timeout=50

 

測試中遇到的問題︰

1. 設定多個表空間時,啟動不了。出現 [ERROR] Default storage engine (InnoDB) is not available

原因︰設定過的表空間ibdata1檔案在Mysql第一次啟動時候已經創建,大小為設定的10M,一但新設定的 ibdata1 的大小不一致,就會出現問題

解決方法︰1. 不修改ibdata1的大小,直接在後面追加其它表空間配置

2. 如果是新庫,刪除所有表空間檔案和日誌檔案,重新啟動mysql

 

 

 

PS: 各設定參數的含義如下︰

innodb_data_home_dir
這是InnoDB表的目錄共用設定。如果沒有在 my.cnf 進行設定,InnoDB 將使用MySQL的 datadir 目錄為缺省目錄。如果設定一個空字串,可以在 innodb_data_file_path 中設定絕對路徑。

innodb_data_file_path
單獨指定數據檔案的路徑與大小。數據檔案的完整路徑由 innodb_data_home_dir 與這裡所設定值的組合。 檔案大小以 MB 單位指定。因此在檔案大小指定後必有“M”。 InnoDB 也支援縮寫“G”, 1G = 1024M。從 3.23.44 開始,在那些支援大檔案的作業系統上可以設定數據檔案大小大於 4 GB。而在另一些作業系統上數據檔案必須小於 2 GB。數據檔案大小總和至少要達到 10 MB。在 MySQL-3.23 中這個參數必須在 my.cnf 中明確指定。在 MySQL-4.0.2 以及更新版本中則不需如此,系統會預設在 MySQL 的 datadir 目錄下創建一個 16 MB 自擴充(auto-extending)的數據檔案 ibdata1。你同樣可以使用一個 原生磁片分區(RAW raw disk partitions(raw devices)) 作為數據檔案, 如何在 my.cnf 中詳細指定它們請檢視第 12.1 節。

innodb_mirrored_log_groups
為了保護數據而設定的日誌檔案組的拷貝數目,預設設定為 1。在 my.cnf 中以數字格式設定。

innodb_log_group_home_dir
InnoDB 日誌檔案的路徑。必須與 innodb_log_arch_dir 設定相同值。 如果沒有明確指定將預設在 MySQL 的 datadir 目錄下建立兩個 5 MB 大小的 ib_logfile… 檔案。

innodb_log_files_in_group
日誌組中的日誌檔案數目。InnoDB 以環型模式(circular fashion)寫入檔案。數值 3 被推薦使用。在 my.cnf 中以數字格式設定。

innodb_log_file_size
日誌組中的每個日誌檔案的大小(單位 MB)。如果 n 是日誌組中日誌檔案的數目,那麼理想的數值為 1M 至下面設定的緩沖池(buffer pool)大小的 1/n。較大的值,可以減少刷新緩沖池的次數,從而減少磁片 I/O。但是大的日誌檔案意味著在崩潰時需要更長的時間來恢復數據。 日誌檔案總和必須小於 2 GB,3.23.55 和 4.0.9 以上為小於 4 GB。在 my.cnf 中以數字格式設定。

innodb_log_buffer_size
InnoDB 將日誌寫入日誌磁片檔案前的緩沖大小。理想值為 1M 至 8M。大的日誌緩沖允許事務營運時不需要將日誌儲存入磁片而只到事務被提交(commit)。 因此,如果有大的事務處理,設定大的日誌緩沖可以減少磁片I/O。 在 my.cnf 中以數字格式設定。

innodb_flush_log_at_trx_commit
通常設定為 1,意味著在事務提交前日誌已被寫入磁片, 事務可以營運更長以及服務崩潰後的修復能力。如果你願意減弱這個安全,或你營運的是比較小的事務處理,可以將它設定為 0 ,以減少寫日誌檔案的磁片 I/O。這個選項預設設定為 0。

innodb_log_arch_dir
The directory where fully written log files would be archived if we used log archiving. 這裡設定的參數必須與 innodb_log_group_home_dir 相同。 從 4.0.6 開始,可以忽略這個參數。

innodb_log_archive
這個值通常設為 0。 既然從備份中恢復(recovery)適合於 MySQL 使用它自己的 log files,因而通常不再需要 archive InnoDB log files。這個選項預設設定為 0。

innodb_buffer_pool_size
InnoDB 用來高速緩沖數據和索引內存緩沖大小。 更大的設定可以使訪問數據時減少磁片 I/O。在一個專用的數據庫伺服器上可以將它設定為物理內存的 80 %。 不要將它設定太大,因為物理內存的使用競爭可能會影響作業系統的頁面調用。在 my.cnf 中以數字格式設定。

innodb_additional_mem_pool_size
InnoDB 用來存儲數據字典(data dictionary)訊息和其它內部數據架構(internal data structures)的存儲器組合(memory pool)大小。理想的值為 2M,如果有更多的表你就需要在這裡重新分發。如果 InnoDB 用盡這個池中的所有內存,它將從作業系統中分發內存,並將錯誤訊息寫入 MySQL 的錯誤日誌中。在 my.cnf 中以數字格式設定。

innodb_file_io_threads
InnoDB 中的檔案 I/O 線程。 通常設定為 4,但是在 Windows 下可以設定一個更大的值以提升磁片 I/O。在 my.cnf 中以數字格式設定。

innodb_lock_wait_timeout
在回滾(rooled back)之前,InnoDB 事務將等待超時的時間(單位 秒)。InnoDB 會自動檢查自身在鎖定表與事務回滾時的事務死鎖。如果使用 LOCK TABLES 命令,或在同一個事務中使用其它事務安全型表處理器(transaction safe table handlers than InnoDB),那麼可能會發生一個 InnoDB 無法注意到的死鎖。在這種情況下超時將用來解決這個問題。這個參數的預設值為 50 秒。在 my.cnf 中以數字格式設定。

innodb_flush_method
這個參數僅僅與 Unix 相關。這個參數預設值為 fdatasync。 另一個設定項為 O_DSYNC。這僅僅影響日誌檔案的轉儲,在 Unix 下以 fsync 轉儲數據。InnoDB 版本從 3.23.40b 開始,在 Unix 下指定 fdatasync 為使用 fsync 模式、指定 O_DSYNC 為使用 O_SYNC 模式。由於這在某些 Unix 環境下還有些問題所以在 ‘data’ versions 並沒有被使用。

innodb_force_recovery
警告︰此參數只能在你希望從一個被損壞的數據庫中轉儲(dump)數據的緊急情況下使用﹗ 可能設定的值範圍為 1 – 6。檢視下面的章節 ‘Forcing recovery’ 以了解這個參數的具體含義。參數設定大於 0 的值代表著 InnoDB 防止用戶修改數據的安全度。從 3.23.44 開始,這個參數可用。在 my.cnf 中以數字格式設定。

innodb_fast_shutdown
InnoDB 缺少在關閉之前清空插入緩沖。這個操作可能需要幾分鐘,在極端的情況下可以需要幾個小時。如果這個參數據設定為 1 ,InnoDB 將跳過這個過程而直接關閉。從 3.23.44 和 4.0.1 開始,此參數可用。從 3.23.50 開始,此參數的預設值為 1。

innodb_thread_concurrency
InnoDB 會試圖將 InnoDB 服務的使用的作業系統進程小於或等於這裡所設定的數值。此參數預設值為 8。如果計算機系統性能較低或 innodb_monitor 顯示有很多線程等侍信號,應該將這個值設小一點。如果你的計算機系統有很我的處理器與磁片系統,則可以將這個值設高一點以充分利用你的系統資源。建議設值為處理器數目+ 磁片數目。 從 3.23.44 和 4.0.1 開始,此參數可用。在 my.cnf 中以數字格式設定。

 

在 Windows 系統下 my.cnf 或 my.ini 放在那裡?規則如下 ︰

 

只能存在一個 my.cnf 或 my.ini 檔案

my.cnf 檔案必須放在 C: 的根目錄下

my.ini 檔案必須放在 WINDIR 目錄下,例︰C:WINDOWS 或 C:WINNT。可以使用 MS-DOS 的 SET 命令檢視 WINDIR 目錄值

如果你的 PC 使用啟動引導程式引導系統而 C: 不是啟動磁片,那只能唯一地使用 my.ini 作為設定檔案

 

 

Unix 下在那裡指定配置檔案?在 Unix 下 mysqld 按下列順序搜索配置檔案︰

 

/etc/my.cnf 全局選項

COMPILATION_DATADIR/my.cnf 伺服器範圍的選項

defaults-extra-file 採用 –defaults-extra-file=…. 設定的預設檔案

~/.my.cnf 用戶指定檔案

COMPILATION_DATADIR 是 MySQL 的數據檔案目錄,它是在 mysqld 被編譯時以 ./configure 設定指定 (典型的是

/usr/local/mysql/data 二進製安裝或 /usr/local/var 以源安裝)。

 

 

如果不有確定 mysqld 從那裡讀取 my.cnf 或 my.ini,可以在第一命令行上詳細指定它的目錄︰mysqld –defaults-

file=your_path_to_my_cnf。

 

InnoDB 的數據檔案目錄是對 innodb_data_home_dir 與 innodb_data_file_path 的數據檔案名或目錄聯合 ,如果需要將在它們之

間增加一個“/”或“”。如果關鍵字 innodb_data_home_dir 沒有在 my.cnf 中明確指定,它的預設值為“.”,即目錄“./”,

這意味著 MySQL 的 datadir of MySQL.

 

內存使用下面的加起來不要超過2G:

innodb_buffer_pool_size

+ key_buffer_size

+ max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size)

+ max_connections*2MB

~ 由 壞孩子 於 三月 7, 2007.

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

 
%d 位部落客按了讚: