LitOS & Slackware MySQL
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).
Subscribe via email
Permalink


7 Respon pada : “LitOS & Slackware MySQL”
Oleh xeozus pada tanggal Mar 5, 2008 | Balas
cerdik..
Oleh ilyaZ pada tanggal Mar 5, 2008 | Balas
@xeozus,
wew, kok iso?
Oleh Noprianto pada tanggal Mar 13, 2008 | Balas
Menarik dan bagus sekali
Untuk yang tunggu 5 detik, ada alternatif untuk menguji apakah mysql sudah started atau belum?
Karena, kalau mesin cepat, ini tentu kelamaan. Kalau mesin lambat, bisa2 ini terlalu cepat.
Oleh ilyaZ pada tanggal Mar 13, 2008 | Balas
@Noprianto,
Ini bener noprianto yang saya kagumi?
Tentu ada caranya, dengan memanfaatkan mysql pid. Jadi selama file itu belum ada, maka mysql belum start. Script nya adalah :
while [ 0 ]; do
if [ -f /var/run/mysql.pid ]; then
/usr/bin/mysqladmin -u root password ‘passwordnya’
break;
else
continue
fi
done
jadi selama mysql belum jalan, dia tidak akan berjalan ke perintah berikutnya.
Makasi atas koreksinya 
Oleh Noprianto pada tanggal Mar 14, 2008 | Balas
Thanks ya
Saya juga terus belajar kok
Mantap sekali perbaikannya
Sukses ya…
Oleh ilyaZ pada tanggal Mar 14, 2008 | Balas
@Noprianto,
Sama-sama..