Monday, May 11, 2015

Error Can't connect to MySql server on localhost (10061)



Notifikasi error mysql seperti dibawah ini sudah seringkali kita temukan, terutama bila kita salah setting nama, username & password database di file konfigurasi.

" Error Can't connect to MySql server on localhost (10061). "

Namun, kali ini masalah yang saya hadapi sedikit agak berbeda, karena setting sudah (yakin) benar dengan alasan mysql di webserver tsb bisa terkoneksi dari PC User/Client.

Beberapa cara yang pernah saya lakukan untuk menelusuri & mengatasi masalah diatas adalah sbb :

Memeriksa status firewall [ UFW ]
ufw status verbose
Memeriksa juga status IP Tables.
iptables -L -v --line-numbers
Melihat hasil perintah lsof -Pni :3306, dengan hasil,
COMMAND   PID     USER    FD    TYPE   DEVICE   SIZE/OFF   NODE NAME
mysqld    13385   mysql   10u   IPv4   360574   0t0        TCP 127.0.0.1:3306 (LISTEN)
Melakukan koneksi langsung ke database yang dimaksud via terminal, dengan command,
mysql -h db.server -u user -p dbname
Contoh : Dengan IP Webserver
mysql -h 192.168.70.1 -u zabbix1 -p zabbixdb
atau
mysql -h 127.0.0.1 -u zabbix1 -p zabbixdb
atau
mysql -h localhost -u zabbix1 -p zabbixdb
Hasilnya sama-sama mendapatkan error kedua, seperti ini,

" ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.70.1' (111). "

Melakukan lagi koneksi ke database via terminal, kali ini dengan syntax command yang biasa,
mysql -u Username -p
Contoh
mysql -u zabbix1 -p
Lalu masukkan password akses database mysql.

Dan hasilnya pasti bisalah alias sukses,
Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2765
Server version: 5.5.43-0+deb7u1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


Solusi. Nah, untuk langsung bisa mengakses atau terhubung langsung ke database yang dimaksud, berarti ada konfigurasi yang harus disesuaikan yaitu bisa dengan cara sebagai berikut :
cp /etc/mysql/my.cnf /etc/mysql/my.cnf.default
nano /etc/mysql/my.cnf

Cari dengan ctrl+w "bind-address" dan diubah menjadi seperti dibawah ini
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 0.0.0.0

Kemudian simpan, restart Mysql & Apache2
service mysql restart
service apache2 restart
Seharusnya masalah sudah teratasi ( solved ) dan sudah dapat terkoneksi dengan database yang dimaksud pada [ Mysql ] webserver.

Buktikan saja dengan akses ulang melalui terminal dengan memakai command yang pertama, hasilnya harusnya sudah bisa, seperti dibawah ini.

root@webserver:~# mysql -h 127.0.0.1 -u zabbix1 -p zabbixdb

Enter password:

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11640
Server version: 5.5.43-0+deb7u1 (Debian)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Berhasil juga ketika dicoba dengan,
mysql -h localhost -u zabbix1 -p zabbixdb
dan dengan ip webserver
mysql -h 192.168.70.1 -u zabbix1 -p zabbixdb


Selamat Mencoba!