MySQL Tuner on FreeBSD 9.2

I just know if mysqltuner is available via ports.

Quick heads up :

# cd /usr/ports/databases/mysqltuner

# make install

# whereis /usr/local/bin/

# /usr/local/bin/

>>  MySQLTuner 1.2.0 – Major Hayden <[email protected]>
>>  Bug reports, feature requests, and downloads at
>>  Run with ‘–help’ for additional options and output filtering
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:

——– General Statistics ————————————————–
[–] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.34
[OK] Operating on 64-bit architecture

——– Storage Engine Statistics ——————————————-
[–] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[–] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] InnoDB is enabled but isn’t being used
[OK] Total fragmented tables: 0

——– Security Recommendations  ——————————————-
[OK] All database users have passwords assigned

——– Performance Metrics ————————————————-
[–] Up for: 1h 21m 43s (54 q [0.011 qps], 12 conn, TX: 28K, RX: 1K)
[–] Reads / Writes: 84% / 16%
[–] Total buffers: 168.0M global + 2.8M per thread (151 max threads)
[OK] Maximum possible memory usage: 583.2M (5% of installed RAM)
[OK] Slow queries: 0% (0/54)
[OK] Highest usage of available connections: 0% (1/151)
[OK] Key buffer size / total MyISAM indexes: 8.0M/98.0K
[!!] Key buffer hit rate: 50.0% (2 cached / 1 reads)
[!!] Query cache is disabled
[OK] Temporary tables created on disk: 0% (0 on disk / 6 total)
[!!] Thread cache is disabled
[OK] Table cache hit rate: 85% (41 open / 48 opened)
[OK] Open file limit used: 0% (48/11K)
[OK] Table locks acquired immediately: 100% (50 immediate / 50 locks)
[!!] Connections aborted: 25%

——– Recommendations —————————————————–
General recommendations:
Add skip-innodb to MySQL configuration to disable InnoDB
MySQL started within last 24 hours – recommendations may be inaccurate
Enable the slow query log to troubleshoot bad queries
Set thread_cache_size to 4 as a starting value
Your applications are not closing MySQL connections properly
Variables to adjust:
query_cache_size (>= 8M)
thread_cache_size (start at 4)

Interesting…. as I see this job is not just set and forget but must be running regularly to identified a running process.

P.S : my.cnf location can be seen from ps command

# ps -ax | grep mysql
96928 ??  Is       0:00.01 /bin/sh /usr/local/bin/mysqld_safe –defaults-extra-file=/var/db/mysql/my.cnf –user=mysql –datadir=/var/db/mysql –pid-file=/var/db/mysql/
97024 ??  I        0:00.91 /usr/local/libexec/mysqld –defaults-extra-file=/var/db/mysql/my.cnf –basedir=/usr/local –datadir=/var/db/mysql –plugin-dir=/usr/local/li

or if its not exist you can copy one from share

# ls /usr/local/share/mysql | grep my-


in Unix | 423 Words

Install PHP 5.2.17 on CentOS 5.10

CentOSAnother server came with specific hardware that require me to install CentOS 5.10 64 bit with base only package. Since CentOS 5 use PHP 5.1 by default so I decide to find a way for PHP 5.2.17 (latest version of PHP 5.2 generation).


I use Jason package from

# nano /etc/yum.repos.d/utter-ramblings.repo
fill these lines :

name=Utter Ramblings


Make sure to change to for baseurl if you use 32 bit.

Install PHP and friends

PHP 5.2.17

# yum install php php-mysql


# yum install mysql-server

Run as service

# chkconfig httpd --add
# chkconfig  httpd  on --level 235
# chkconfig  mysqld --add
# chkconfig mysqld on --level 235

2  =  Multi-user mode console logins only (without networking)
3  =  Multi-User mode, console logins only
5  = Multi-User mode, with display manager as well as console logins (X11)

Checking if already set as service

# chkconfig --list mysqld
mysqld             0:off    1:off    2:on    3:on    4:off    5:on    6:off
# chkconfig --list httpd
httpd              0:off    1:off    2:on    3:on    4:off    5:on    6:off

Checking installed httpd and mysql :

# rpm -qa | grep httpd

# rpm -qa | grep mysql


P.S : in case you got error (refused connection) then iptables need to told about this service :

# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# service iptables save

Saving firewall rules to /etc/sysconfig/iptables:          [  OK  ]
# service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: filter                    [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_conntrack_netbios_n[  OK  ]


Last check : date

# date
Rab Nov 12 18:20:19 WIT 2014

Checking BIOS time I see no error.

# rpm -qa | grep ntp

Since another process lock yum, I use quick way :

# date 111210212014
Rab Nov 12 10:21:00 WIT 2014

Yes, that command use following format

date MMDDhhmmYYYY

MM -> month (in two digit)

DD -> date (in two digit)

hh -> hour (in 24 hour format)

mm -> minutes (in 2 digit)

YYYY -> year (in 4 digit)

Check again after issue command.

# date

Rab Nov 12 10:25:21 WIT 2014

Yes, the result is match.

I’ll continue with ntp next time.

For quick dns setting I use maradns.

Update January 15 2015 :

I need fail2ban for this server :

Add server

#rpm -Uvh
warning: /var/tmp/rpm-xfer.UKJ53A: Header V3 DSA signature: NOKEY, key ID 217521f6
Preparing… ########################################### [100%]
1:epel-release ########################################### [100%]

Install fail2ban

# yum install fail2ban
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base:
* epel:
* extras:
* updates:
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package fail2ban.noarch 0:0.8.14-1.el5 set to be updated
–> Processing Dependency: python-inotify for package: fail2ban
–> Running transaction check
—> Package python-inotify.noarch 0:0.9.1-1.el5 set to be updated
–> Processing Dependency: python-ctypes for package: python-inotify
–> Running transaction check
—> Package python-ctypes.x86_64 0:1.0.2-3.el5 set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

Package Arch Version Repository Size
fail2ban noarch 0.8.14-1.el5 epel 266 k
Installing for dependencies:
python-ctypes x86_64 1.0.2-3.el5 base 210 k
python-inotify noarch 0.9.1-1.el5 epel 86 k

Transaction Summary
Install 3 Package(s)
Upgrade 0 Package(s)

Total download size: 562 k
Is this ok [y/N]: y
Downloading Packages: [Errno 12] Timeout: <urlopen error timed out>
Trying other mirror.
(1/3): python-inotify-0.9.1-1.el5.noarch.rpm | 86 kB 00:00
(2/3): python-ctypes-1.0.2-3.el5.x86_64.rpm | 210 kB 00:03
(3/3): fail2ban-0.8.14-1.el5.noarch.rpm | 266 kB 00:02
Total 6.8 kB/s | 562 kB 01:22
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6
epel/gpgkey | 1.7 kB 00:00
Importing GPG key 0x217521F6 “Fedora EPEL <[email protected]>” from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : python-ctypes 1/3
Installing : python-inotify 2/3
Installing : fail2ban 3/3

fail2ban.noarch 0:0.8.14-1.el5

Dependency Installed:
python-ctypes.x86_64 0:1.0.2-3.el5 python-inotify.noarch 0:0.9.1-1.el5


Configuration fail2ban

# nano /etc/fail2ban/jail.conf

Pay attention to ssh section

service fail2ban restart

# service fail2ban restart
Stopping fail2ban: ERROR Unable to contact server. Is it running?
Starting fail2ban: [ OK ]

Check fail2ban exist?

# ps ax | grep fail
4066 ? Sl 0:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/ -x
4099 ? S 0:00 sh -c printf %b “Subject: [Fail2Ban] SSH: stopped on `uname -n`?Date: `LC_TIME=C date -u +”%a, %d %h %Y %T +0000″`?From: Fail2Ban <[email protected]>?To: [email protected]\n?Hi,\n?The jail SSH has been stopped.\n?Regards,\n?Fail2Ban” | /usr/sbin/sendmail -f [email protected] [email protected]
4103 ? S 0:00 /usr/sbin/sendmail -f [email protected] [email protected]
4173 ? Sl 0:00 /usr/bin/python /usr/bin/fail2ban-server -b -s /var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/ -x
4184 ? S 0:00 sh -c printf %b “Subject: [Fail2Ban] SSH: started on `uname -n`?Date: `LC_TIME=C date -u +”%a, %d %h %Y %T +0000″`?From: Fail2Ban <[email protected]>?To: [email protected]\n?Hi,\n?The jail SSH has been started successfully.\n?Regards,\n?Fail2Ban” | /usr/sbin/sendmail -f [email protected] [email protected]
4188 ? S 0:00 /usr/sbin/sendmail -f [email protected] [email protected]

Update : June 24 2015

I just know ntsysv, an utility that useful to enable the service during boot. Neat one.

Well, I need to set sender address 🙂

Install Lua on Linux Ubuntu

As Android world use Java mostly for its language then I found Lua is another language that powering many games. I want to try it on my Ubuntu desktop and see how it goes :

$ sudo apt-get install lua
[sudo] password for alamsyah:
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package lua is a virtual package provided by:
lua50 5.0.3-6
lua5.2 5.2.1-3
lua5.1 5.1.5-4
You should explicitly select one to install.

I choose Lua 5.2
$ sudo apt-get install lua5.2
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
libjavascriptcoregtk-1.0-0 libwebkitgtk-1.0-0 libwebkitgtk-1.0-common
Use ‘apt-get autoremove’ to remove them.
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 341 not upgraded.
Need to get 159 kB of archives.
After this operation, 357 kB of additional disk space will be used.
Get:1 raring/universe lua5.2 i386 5.2.1-3 [159 kB]
Fetched 159 kB in 2s (57,1 kB/s)
Selecting previously unselected package lua5.2.
(Reading database … 200688 files and directories currently installed.)
Unpacking lua5.2 (from …/lua5.2_5.2.1-3_i386.deb) …
Processing triggers for man-db …
Setting up lua5.2 (5.2.1-3) …
update-alternatives: using /usr/bin/lua5.2 to provide /usr/bin/lua (lua-interpreter) in auto mode
update-alternatives: using /usr/bin/luac5.2 to provide /usr/bin/luac (lua-compiler) in auto mode


Checking version :
$ lua -v
Lua 5.2.1  Copyright (C) 1994-2012, PUC-Rio

$ luac -v
Lua 5.2.1  Copyright (C) 1994-2012, PUC-Rio

Nice, ready for the ‘moon’.

in Blog | 247 Words

Trying Eclipse on Ubuntu 13.04

I want to try Eclipse on my Ubuntu 13.04 . Installation process is quite straight perhaps useful for me in future use.

Checking Java

I already install Java before, check it first :

$ java -version

java version “1.7.0_25”
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK Server VM (build 23.7-b01, mixed mode)

Get nearest mirror from Eclipse website

As I’m from Indonesia I got mirror from University of Indonesia.

$ wget -c

Checking md5 sum against :

bd98e1ac83cbc95909a3c856d3ced8a6  eclipse-standard-kepler-SR1-linux-gtk.tar.gz

$ md5sum eclipse-standard-kepler-SR1-linux-gtk.tar.gz
bd98e1ac83cbc95909a3c856d3ced8a6  eclipse-standard-kepler-SR1-linux-gtk.tar.gz

Good packet.

$ tar xvzf eclipse-standard-kepler-SR1-linux-gtk.tar.gz

$ sudo ln -s /home/alamsyah/eclipse/eclipse /usr/bin/eclipse
[sudo] password for alamsyah:


$ sudo nano /usr/share/applications/eclipse.desktop

[Desktop Entry]
Comment=IDE for all seasons
Exec=env UBUNTU_MENUPROXY=0 /home/alamsyah/elipse/eclipse


Add ADT Plugin

Start eclipse by typing : eclipse . Click Help and Install New Software.

Click Add button and enter :

Name : ADT

Url :



Click Next.


Accept Terms.


Choose ‘Always run in background’.



How to install FreeBSD 10 step by step

Horray, FreeBSD 10 is out and ready to serve as usual 🙂 .  After getting iso file for i386 I quickly set Virtualbox using memory 512MB and space 20GB plus setting ethernet as Bridge. Fire up start button bring me to installation screen. Major release always excite me and I try to document installation process in case others need it.

Lets get start :

By default Virtualbox will set iso file as first boot device and I get this screen.


Let the default option or wait for autobot. Press Space to pause and choose other option.

Continue reading