Choose Your Language

28 October 2012

Install MySQL di Centos dengan configure (dari source code)

Kali ini mari kita coba install MySQL 5.0.91 di Centos dengan cara configure / dari source. Memang lebih sulit daripada kita menginstall dengan yum ataupun rpm. Saya membuatnya karena ada server production yang masih memakai Centos versi lama dimana repositorynya sudah tidak ada dan juga tidak ada CD Centos versi tersebut di kantor. Berikut caranya, saya menginstallnya di folder /home/indra/mysql-5.0.91/

$ wget http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.91.tar.gz
$ tar xzf mysql-5.0.91.tar.gz
$ cd mysql-5.0.91
$ ./configure --prefix=/usr/local/mysql
$ make
$ make install
$ cp /home/indra/mysql-5.0.91/support-files/my-medium.cnf /etc/my.cnf
$ groupadd mysql
$ useradd -g mysql mysql
$ cd /usr/local/mysql
$ chown -R mysql .
$ chgrp -R mysql .
$ /home/indra/mysql-5.0.91/scripts/mysql_install_db --user=mysql
$ chown -R root .
$ chown -R mysql var
$ /usr/local/mysql/bin/mysqladmin -u root password 123
$ cp /home/indra/mysql-5.0.91/support-files/mysql.server /etc/init.d/mysql
$ chmod +x /etc/init.d/mysql
$ /etc/init.d/mysql start
$ chkconfig mysql on
$ export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
$ ps aux |grep mysql

Bila PID MySQL sudah ada maka MySQL sudah dapat dijalankan.

=======================================================

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h indra.office.com password 'new-password'

Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe

You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
=======================================================
Sumber :

http://blog.pnyet.web.id/2011/04/15/installing-mysql-from-source.html
http://forums.mysql.com/read.php?10,214837,214946#msg-214946
http://www.geeksww.com/tutorials/database_management_systems/mysql/installation/downloading_compiling_and_installing_mysql_server_from_source_code.php

09 October 2012

Cara mengatasi masalah ip_conntrack: table full, dropping packet

Suatu kali saya pernah mengalami masalah web server (Centos) dimana terjadi banyak sekali RTO (request time out). Dugaan pertama masalah mungkin ada pada ISP, karena ISP di kantor ada 2 yaitu ISP kantor dan ISP khusus Colocation. Untuk mengecek internet mana (kantor atau colocation) yang bermasalah saya gunakan aplikasi gratis WinMTR. Ketika dicek dengan WinMTR ternyata packet loss banyak terjadi pada koneksi internet di colocation. Saya langsung menghubungi ISP di colocation tersebut. Setelah dilakukan pengecekan oleh ISP, diduga oleh ISP banyak request ke web server yang menyebabkan bandwidth full sehingga terjadi banyak RTO (padahal dilihat dari mrtg, bandwidth yang terpakai belum penuh). Saya usulkan untuk penambahan bandwidth menjadi 3 MB, oleh ISP ditambahkan menjadi 5 MB (lebih banyak dong hehehe). Sesudah ditambah ternyata masih terjadi RTO malah lebih parah. ISP-nya mengambil kesimpulan tidak ada masalah pada jaringan mereka, mungkin masalah ada pada koneksi di web server tersebut. Akhirnya kita berangkat ke gedung colocation. Sesampai disana ketika dinyalakan servernya muncul tulisan, nah ini dia:

ip_conntrack: table full, dropping packet. 
ip_conntrack: table full, dropping packet. 
ip_conntrack: table full, dropping packet. 

Ternyata masalah terjadi pada firewall iptables. Connection tracking (conntrack) database penuh/full ketika mencatat koneksi simultan. 

Untuk mengetahui limit koneksi conntrack kita dapat gunakan perintah:

1. sysctl net.ipv4.netfilter.ip_conntrack_max 
2. atau cat /proc/sys/net/ipv4/ip_conntrack_max


Akan muncul angka : 65536
Sudah cukup besar kan. Tapi kok iptablesnya masih error ya. 

Mari kita lihat konfigurasi conntrack kita di sysctl dengan perintah:

sysctl -a | grep conntrack

Misal muncul tulisan :
net.ipv4.ip_conntrack_max = 65496
net.ipv4.netfilter.ip_conntrack_generic_timeout = 600
net.ipv4.netfilter.ip_conntrack_icmp_timeout = 30
net.ipv4.netfilter.ip_conntrack_udp_timeout_stream = 180
net.ipv4.netfilter.ip_conntrack_udp_timeout = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 10
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 30
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 259200
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 432000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_max = 65496

Ayo kita coba rubah setting konfigurasi yang dicetak tebal (bold) dengan cara menambahkannya di  /etc/sysctl.conf:


net.ipv4.netfilter.ip_conntrack_max = 98000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 240
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 28800

Dengan cara ini kita menambah sedikit kapasitas tabel menjadi 98000, dan disaat yang sama mengurangi jumlah waktu koneksi yang terjadi dari 5 hari (432000 detik) menjadi 8 jam (28800 detik). Kita juga mengubah jumlah koneksi waktu akan disimpan di TIME_WAIT  untuk sesuatu yang lebih wajar.

Untuk memantau koneksi simultan yang terjadi secara real-time maka gunakan perintah:

wc -l /proc/net/ip_conntrack



Mudah-mudahan membantu :)

Sumber:

http://www.linuxquestions.org/questions/linux-server-73/ip_conntrack-table-full-581142/
http://www.cyberciti.biz/faq/ip_conntrack-table-ful-dropping-packet-error/
http://rackerhacker.com/2008/01/24/ip_conntrack-table-full-dropping-packet/



Software
Billigt Flyg London