One of the best practise to config my.cnf MYSQL


Aku masih pengguna tegar MYSQL. So bebaru ni ada rakan aku once server dia restart, semua database innodb dia hilang..aku pun terfikir..alhamdulillah config aku kat server LinuxDB aku tak jadi macam tu. So aku pun terfikir untuk retune semula database aku tu.

Step nya adalah seperti berikut :

1) Jika ada phpmyadmin, login dan buka menu tab 'status'
2) Dari situ kaji dan analisa statistik dipaparkan untuk kenalpasti keperluan penukaran konfigurasi kepada database tersebut untuk memenuhi tahap kesesuaian penggunaan database server tersebut.
3) So setelah aku tengok server aku dan dapati bab log innodb dan myisam ni kena retune semula dari segi storage cache dan pool size sebab kat dalam status tu dah warna merah maksudnya mencapai maksimum dan kena berwaspada.
4) So berikut adalah config my.cnf yang aku buat untuk server LinuxDB aku :

[mysqld]
datadir=/x/x/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
#set-variable = max_allowed_packet=32M
# 060412 ---
slow-query-log
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

# binary logging format - mixed recommended
log-bin=mixed

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id    = 1
#---

# To allow mysqld to connect to a MySQL Cluster management daemon, uncomment
# these lines and adjust the connectstring as needed.
#ndbcluster
#ndb-connectstring="nodeid=4;host=localhost:1186"

# To enable the InnoDB Plugin, uncomment the 2 next lines
#ignore-builtin-innodb
#plugin-load=innodb=ha_innodb_plugin.so

# To enable InnoDB-related INFORMATION_SCHEMA tables
# Join the following options to above directive
  ;innodb_trx=ha_innodb_plugin.so
  ;innodb_locks=ha_innodb_plugin.so
  ;innodb_cmp=ha_innodb_plugin.so
  ;innodb_cmp_reset=ha_innodb_plugin.so
  ;innodb_cmpmem=ha_innodb_plugin.so
  ;innodb_cmpmem_reset=ha_innodb_plugin.so

# 060412 ---
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
#---

[mysqldump]
quick
max_allowed_packet = 16M

[mysqld_safe]
log-error=/x/x/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[ndbd]
# If you are running a MySQL Cluster storage daemon (ndbd) on this machine,
# adjust its connection to the management daemon here.
# Note: ndbd init script requires this to include nodeid!
connect-string="nodeid=2;host=localhost:1186"

[ndb_mgm]
# connection string for MySQL Cluster management tool
connect-string="host=localhost:1186"


5) Dalam config tu aku tambah sikit beberapa config untuk kenalpasti query yang slow di server aku tu jadi boleh kenalpasti sistem apa yang akan terjejas slow akses ke linuxdb tu nanti dan perlu diberitahu kepada Admin sistem untuk tindakan seterusnya retune programming code atau retune database structure.
[mysqld]
slow-query-log
6) Aku juga tambah config untuk kawal aktiviti dump server bagi elakkan server trafic tinggi apabila kerja dump tu dilaksanakan sebab backup aku tetapkan 3 kali sehari kt server tu.
[mysqldump]
quick
max_allowed_packet = 16M

7) Selain tu, aku improve buffer size bagi myisam dan innodb untuk cater sebarang query yang tinggi di server tu nanti. Aku pun ikut dari suggestion MYSQL kat folder /usr/share/mysql. Kat situ ada cadangan untuk config DB Server saiz kecik, sedang2, besar dan giler babas besar..Selain tu ada juga config untuk database yang guna fully innoDB.
8) Peringatan, sebarang configurasi pool size dan buffer size ni kena depend pada saiz hard disk server dan RAM server. Server aku ni tak silap dah upgrade ke 4GB RAM aritu on CentOS 32 bit.

Semoga panduan membantu anda semua.

~ Be a Creator Not a User ~

Ulasan