Slackware - Disable MySQL Skip Networking

Desain LitOS yang berjalan pada mode database server, adalah komputer dengan sistem operasi GNU/Linux dimana pada komputer tersebut hanya berjaan database MySQL. Sebagai komputer yang hanya digunakan sebagai basis data, maka pada komputer ini tidak ada service apapun selain MySQL. Sehingga semua aplikasi-aplikasi yang mengakses dan memanipulasi database, tentunya dari komputer lain satu jaringan.

Oleh pembuatnya Azrailyaz, distro ini diturunkan dari Slackware, dan di-modifikasi sedemikian rupa hingga menjadi sistem yang sangat mudah digunakan dan siap jalan. Malam ini saya melakukan test kinerja LitOS mode database server. Dengan konsentrasi khusus pada uji coba paket MySQL. Seperti biasa, terdapat beberapa kendala yang sekalian juga perlu dibenahi.

Masalah pertama, service MySQL LitOS 1.1 mode database sudah langsung berjalan tanpa modifikasi apapun, bahkan password default root juga sudah dirubah. Namun, ternyata belum terdapat user `root`@`%` yang memungkinkan MySQL bisa diakses dari komputer lain. Solusinya adalah dengan menambahkan command line berikut pada script inisialisasi mysql pertama kali:

mysql -uroot -ppasswordnya -e 'GRANT ALL PRIVILEGES ON *.*
TO "root"@"%" IDENTIFIED BY "passwordnya" WITH GRANT OPTION'
Setelah paket mysql di remove dan dicoba di install kembali, masalah pertama berhasil teratasi.

Masalah kedua, user root sudah bisa diakses dari komputer mana saja, namun pada prakteknya mysql-client dari komputer sejaringan tidak bisa mengakses database. Masalah ini yang sangat memusingkan, berjam-jam mencari solusi dan informasi di web. Akhirnya menemukan titik terang bahwa MySQL yang sedang berjalan sedang dalam mode skip networking. Artinya, MySQL hanya melayani request yang berasal dari host dimana service tersebut berada (localhost saja), dan tidak melakukan listening pada TCP/IP. Sebagai bukti, adalah hasil eksekusi perintah berikut pada shell:
# mysqladmin variables | grep skip_networking
| skip_networking | ON |
Bingung, pada eksekusi mysql start file rc.mysqld, dimana digunakan binary /usr/bin/mysqld_safe, tidak saya temukan baris skip-networking. Juga pada file my.cnf sebagai defaults-file-nya. Ternyata setelah tidak menyerah mencari info di internet, didapatlah solusinya, dan ternyata simple. Biang keroknya adalah baris perintah diatas fungsi mysqld_start() pada file rc.mysqld, yaitu baris sebagai berikut:
SKIP="--skip-networking"
Comment atau beri tanda pagar, pada awal baris tersebut. Kemudian restart service mysql dengan perintah:
# /etc/rc.d/rc.mysqld restart
Eksekusi kembali mysql variable untuk melihat status skip_networking:
# mysqladmin variables | grep skip_networking
| skip_networking | OFF |
Nah, sekarang komputer lain satu jaringan sudah dapat mengakses database MySQL pada server ini.

Setelah melakukan pemaketan ulang modifikasi paket MySQL, maka kini LitOS 1.1 sudah lulus uji, dan siap digunakan. Satu hal berharga yang selalu saja terlupakan adalah, jangan pernah mengabaikan comment pada script program. Karena sering saya alami, beberapa masalah sebenarnya sudah ada jawabannya pada comment script. Namun terlewat begitu saja di mata, dan akhirnya berpusing ria mencari solusinya di internet.

1 Komentar untuk "Slackware - Disable MySQL Skip Networking"

hanum mengatakan...

terkait dengan analisis MySQL, bisa diunduh artikel berikut http://repository.gunadarma.ac.id/bitstream/123456789/2338/1/Web%20Security%20Analysis%20Using%20Picalo%20and%20MySQL%20In%20Gunadarma%20University.pdf

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel