linux下mysql的配置優化

2021-07-06 04:17:31 字數 3005 閱讀 7688

要求: mysql資料庫管理與維護

1、熟悉linux上安裝、配置和優化mysql資料庫,

2、熟悉 mysql的ab複製以及讀寫分離的實現,能完成新增從庫,從庫變主庫等操作;

3、精通mysql資料庫的查詢、子查詢、插入、更新等操作,以及建資料庫、表和索引;

4、掌握表的連線、檢視,以為儲存過程和函式的使用;

5、能實現mysql資料庫的備份和還原,對各種引擎進行優化;

1.優化mysql資料庫:

vim /etc/my.cnf以下只列出my.cnf檔案中[mysqld]段落中的內容,其他段落內容對mysql執行效能影響甚微,因而姑且忽略。

[mysqld]

port = 3306

serverid = 1

socket = /tmp/mysql.sock

skip-locking

避免mysql的外部鎖定,減少出錯機率增強穩定性。

skip-name-resolve

禁止mysql對外部連線進行dns解析,使用這一選項可以消除mysql進行dns解析的時間。但需要注意,如果開啟該選項,則所有遠端主機連線授權都要使用ip位址方式,否則mysql將無法正常處理連線請求!

back_log = 384

back_log引數的值指出在mysql暫時停止響應新請求之前的短時間內多少個請求可以被存在堆疊中。如果系統在乙個短時間內有很多連線,則需要增大該引數的值,該引數值指定到來的tcp/ip連線的偵聽佇列的大小。不同的作業系統在這個佇列大小上有它自己的限制。試圖設定back_log高於你的作業系統的限制將是無效的。預設值為50。對於linux系統推薦設定為小於512的整數。

key_buffer_size = 256m

key_buffer_size指定用於索引的緩衝區大小,增加它可得到更好的索引處理效能。對於內存在4gb左右的伺服器該引數可設定為256m或384m。注意:該引數值設定的過大反而會是伺服器整體效率降低!

max_allowed_packet = 4m

thread_stack = 256k

table_cache = 128k

sort_buffer_size = 6m

查詢排序時所能使用的緩衝區大小。注意:該引數對應的分配記憶體是每連線獨佔,如果有100個連線,那麼實際分配的總共排序緩衝區大小為100 × 6 = 600mb。所以,對於內存在4gb左右的伺服器推薦設定為6-8m。

read_buffer_size = 4m

讀查詢操作所能使用的緩衝區大小。和sort_buffer_size一樣,該引數對應的分配記憶體也是每連線獨享。

join_buffer_size = 8m

聯合查詢操作所能使用的緩衝區大小,和sort_buffer_size一樣,該引數對應的分配記憶體也是每連線獨享。

myisam_sort_buffer_size = 64m

table_cache = 512

thread_cache_size = 64

query_cache_size = 64m

指定mysql查詢緩衝區的大小。可以通過在mysql控制台觀察,如果qcache_lowmem_prunes的值非常大,則表明經常出現緩衝不夠的情況;如果qcache_hits的值非常大,則表明查詢緩衝使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩衝;qcache_free_blocks,如果該值非常大,則表明緩衝區中碎片很多。

tmp_table_size = 256m

max_connections = 768

指定mysql允許的最大連線程序數。如果在訪問論壇時經常出現too manyconnections的錯誤提示,則需要增大該引數值。

max_connect_errors = 10000000

wait_timeout = 10

指定乙個請求的最大連線時間,對於4gb左右記憶體的伺服器可以設定為5-10。

thread_concurrency = 8

該引數取值為伺服器邏輯cpu數量*2,在本例中,伺服器有2顆物理cpu,而每顆物理cpu又支援h.t超執行緒,所以實際取值為4*2=8

skip-networking

開啟該選項可以徹底關閉mysql的tcp/ip連線方式,如果web伺服器是以遠端連線的方式訪問mysql資料庫伺服器則不要開啟該選項!否則將無法正常連線!

table_cache=1024

物理記憶體越大,設定就越大.預設為2402,調到512-1024最佳

innodb_additional_mem_pool_size=4m

預設為2m

innodb_flush_log_at_trx_commit=1

設定為0就是等到innodb_log_buffer_size列隊滿後再統一儲存,預設為1

innodb_log_buffer_size=2m

預設為1m

innodb_thread_concurrency=8

你的伺服器cpu有幾個就設定為幾,建議用預設一般為8

key_buffer_size=256m

預設為218,調到128最佳

tmp_table_size=64m

預設為16m,調到64-256最掛

read_buffer_size=4m

預設為64k

read_rnd_buffer_size=16m

預設為256k

sort_buffer_size=32m

預設為256k

thread_cache_size=120

預設為60

query_cache_size=32m

值得注意的是:

很多情況需要具體情況具體分析

一、如果key_reads太大,則應該把my.cnf中key_buffer_size變大,保持key_reads/key_read_requests至少1/100以上,越小越好。

二、如果qcache_lowmem_prunes很大,就要增加query_cache_size的值。

Linux下安裝 配置 授權 調優Mysql

以前在linux已經安裝了很多次的mysql,但是時間間隔長了以後,安裝步驟總是會遺漏,趁這次安裝,做一下安裝記錄。rpm qa grep i mysql wget tar xvf mysql 5.6.20 1.linux glibc2.5.x86 64.rpm bundle.tar解壓出7個rpm...

Linux下MySQL的配置

本部落格所有文章均已遷入到 安裝 rmp ivh mysql server 4.1.22 0.glibc23.i386.rpm nodeps rmp ivh mysql client 4.1.22 0.glibc23.i386.rpm nodeps 檢視是否安裝成功 netstat atln 命令看...

Linux下Mysql的配置

安裝 rmp ivh mysql server 4.1.22 0.glibc23.i386.rpm nodeps mysql client 4.1.22 0.glibc23.i386.rpm 檢視是否安裝成功 netstat atln 命令看到3306埠開放說明安裝成功 登入 mysql u use...