Minggu, 2 Maret 2008 | Oleh ilyaZ |

LitOS yang merupakan turunan murni dari Slackware tentu saja meanggunakan paket-paket installer dari slackware, dan termasuk MySQL ini. Seperti biasa paket MySQL di slackware belum dapat langsung digunakan (masalah klasik slack). Lalu bagaimana? Akan selalu ada beberapa jalan untuk menuju Roma dalam sistem pemrograman, demikian juga masalah ini yang jelas-jelas hanya masalah sepele.
Ok, sekarang kita harus sudah tahu masalahnya, slackware sendiri sudah memberikan solusinya, terletak pada bagian atas di dalam file rc.mysqld yang diberi comment :
# Before you can run MySQL, you must have a database. To install an initial
# database, do this as root:
#
# su - mysql
# mysql_install_db
Hal ini jelas menyatakan paket MySQL pada slackware belum ada database sebagai syarat jalannya MySQL ini. Sekarang kita harus paham, apa yang akan terjadi jika kita jalankan 2 perintah tersebut. Perintah “mysql_install_db” akan membuat direktori /var/lib/mysql/mysql dengan kepemilikan user sesuai dengan yang mengeksekusi perintah. Sedangkan MySQL membutuhkan direktori ini dimiliki oleh user mysql dan grup mysql. itulah guna perintah “su - mysql” diawal. Sekarang sudah jelas masalah dan tujuan kita.
Cara pertama kita dapat menggunakan cara cerdik noprianto yang sudah dijelaskan sama si
Xeozus, yaitu dengan mengubah parameter di skrip rc.mysqld nya, atau kita sudah langsung memasukan direktori yang dibutuhkan kedalam paket MySQL. Jika saya disuruh milih, jelas saya pilih cara pertama, disamping memperkecil paket dan juga mengamankan kemungkinan MySQL tidak dapat jalan (karena dir database terhapus).
Sekarang saya memiliki masalah, bagaimana jika pada saat awal pembuatan database MySQL nya, sekalian diberi password untuk MySQL root. Mungkin solusi mudah kita tinggal memasukan perintah set passwordnya dibawah skrip install_db tersebut dengan perintah :
/usr/bin/mysqladmin -u root password 'passwordnya'
Tetapi ada masalah, karena proses itu harus dijalankan ketika mysql sudah jalan, sehingga tidak bisa dengan mudah kita masukan itu dibawah “mysql_install_db” tadi. Untuk itu kita harus memodifikasi lagi file rc.mysqld nya. Dari asalnya :
if [ ! -d /var/lib/mysql/mysql ]; then
mysql_install_db
chown -R mysql.mysql /var/lib/mysql
fi
Menjadi :
if [ ! -d /var/lib/mysql/mysql ] # jika direktori database belum ada
then # maka
mysql_install_db # install database sebagai root
chown -R mysql.mysql /var/lib/mysql # ubah kepemilikan mysql
mysqld_start # jalankan mysql
sleep 5 # tunggu 5 detik
/usr/bin/mysqladmin -u root password 'passwordnya' # set passwordnya
else # jika sudah ada database maka
mysqld_start # jalankan mysql
fi
Langkah sleep 5 gunanya adalah menungu 5 detik untuk melakukan perintah berikutnya. Jika tidak dilakukan maka pengisian password gagal karena proses start mysql butuh waktu sedangkan set password hanya jika mysql sudah start (jalan).
Kata kunci: Linux, LitOS, mysql, SlackWare
Kategori : Linux, LitOS, SlackWare, Tutorial | 7 Komentar »