20 Februari 2008

Ngoprek MySQL

Waktu itu tanggal 26 September 2006, di malam yang biasa2 saja, ditemani laptop pinjaman dengan OS Windows 98 dengan prosesor Pentium 3 (lupa speed-nya.) Sepulang dari kampus ketemu kelas karyawan di mata kuliah Praktikum Sistem Basis Data alias MySQL.

Untuk kelas ini memang agak unik, untuk kelas reguler berada di Lab 5 dengan spek komputer yang lumayan ketimbang Lab 7, waktu itu.
Di kelas karyawan tidak belajar sebagaimana kelas reguler, yaitu tinggal instal dari MySQL setup, beres. Melainkan, kita belajar manual dari MySQL 5 yang masih terkompres (.zip). Mengekstrak semua file dalam zip, kemudian konfigurasi manual.

Inilah yang unik, dan butuh kesabaran dan ketahan yang agak lumayan :)

Ada beberapa hal perlu kita ketahui lebih dahulu, yaitu file konfigurasi di instalasi mysql. File inilah yang menjadi rujukan dari setiap mysql server ketika loading.
File ini bernama my.ini atau my.cnf.

Ada beberapa urutan atau prioritas pembacaan file konfigurasi ini berdasarkan letaknya di Windows. (
O ya, penulis lupa, bahwa ngoprek mysql di sini adalah di OS Windows).
1. C:\my.ini
2. C:\my.cnf
3. C:\WINDOWS\my.ini
4. C:\WINDOWS\my.cnf
5. C:\WINDOWS\SYSTEM\my.ini
6. C:\WINDOWS\SYSTEM\my.cnf
7. C:\MySQL\my.ini
8. C:\MySQL\my.cnf

Asumsi di sini adalah instalasi MySQL ada di
c:\MySQL\.

Ketika Anda menginstal software MySQL, harap diperhatikan file2 konfigurasi ini, terutama ketika Anda menginstal lebih dari satu MySQL, baik itu MySQL Standalone, maupun yang terintegrasi dengan paket2 tertentu, seperti WAMPXAMPP atau yang lainnya.

Dampak dari instalasi lebih dari satu MySQL adalah kemungkinan terjadinya salah masuk "
atau kamar". Misalnya, Anda menginstal MySQL versi 5, dimana sebelumnya telah terinstal MySQl versi 3, sekaligus file my.ini dari yang versi 3 ini berada di root, yaitu c:\my.ini. Ketika Anda membuka MySQL client utility dari yang versi 5, dapat menyebabkan Anda masuk ke MySQL server-nya MySQL versi 3. Sering terjadi ketika sebelumnya pernah menginstal PHPTriad yang lama.

PERIKSA MYSQL SERVER

Setelah Anda menginstalasi MySQL, pertama-tama adalah periksa apakah server hidup atau tidak, caranya:

1. Silakan masuk DOS Command Prompt dan menuju direktori C:\MySQL\bin>
2. Setelah masuk DOS
Command Prompt, ketikan perintah:

mysqladmin -u nama_user -p ping

Contoh:

C:\MySQL\bin> mysqladmin -u galih -p ping ◄┘ ENTER

Masukkan password Anda kemudian tekan ENTER.

Untuk instalasi dari file ZIP, biasanya passwordnya belum ada, so dikosongkan saja.

Langkah berikutnya adalah memeriksa versi MySQL Anda, sudah benar atau jangan2 salah "
kamar"

C:\MySQL\bin> mysqladmin -u galih -p version ◄┘ ENTER

Jika versi yang muncul sesuai seperti gambar berikut misalnya, berarti instalasi sukses.













Sekarang kita matikan dulu MySQL sever-nya dengan perintah:


C:\MySQL\bin> mysqladmin -u galih -p shutdown ◄┘ ENTER

Nah, kalau sudah offline, kita tambahkan dulu beberapa sintaks pada file My.ini di direktori instalasi MySQL Anda. Jangan lupa dibuka dulu di sebuah teks editor.

Sebelumnya cari dulu heading [mysql], dan tambahkan di mana saja selama masih dalam jangkauan heading [mysql] sebelum ketemu heading lainnya, yaitu:

basedir = c:/mysql/
datadir = c:/mysql/data/
Simpan file tersebut silakan buka lagi file MySQL server.

STUDI KASUS

Asumsi komputer Anda masih bersih dari instalasi MySQL apapun.
Kemudian di komputer Anda diinstal PHPTriad yang di dalamnya terdapat paket apache, php, mysql versi 3.

Status dari MySQL secara otomatis adalah (misal):

Server version 3.23.47-max-debug
Protocol version 10
Connection localhost via TCP/IP
TCP port 3306
Uptime: 8 min 0 sec


Secara default, dia akan menginstal file konfigurasi sbb:

C:\my.cnf
C:\apache\mysql\my.ini
C:\apache\mysql\my.cnf
C:\WINDOWS\SYSTEM\my.ini

Ketika mau menjalankan versi mysql server yang lebih baru hasil ekstrak, misal versi 5.1.9 beta,
akan muncul peringatan sbb:


F:\PROGRAMMER\MySQL\MySql\mysql-5.1.9-beta-win32\bin>mysqld
060927 22:19:17 [ERROR] Character set information not found in 'c:\apache\mysql\share\english\errmsg.sys'. Please install the latest version of this file.
060927 22:19:17 [ERROR] Aborting

Peringatan tetap muncul meski server yang versi lama dimatikan dan akan menjalankan versi baru. Ketika Anda menjalankan file mysql client utility yang versi 5.1.9, maka dia akan mengakses mysqld yang versi 3.

CARA 1:
---------
1. Matikan server versi lama
2. Hapus atau simpan dengan nama lain file C:\my.cnf.
3. Jalankan server versi baru
4. Ternyata masih belum jalan.

CARA 2:
---------
1. Hapus atau simpan dengan nama lain file C:\WINDOWS\SYSTEM\my.ini
2. Jalankan server versi baru
3. Ok. Server telah bisa dijalankan
4. Masuk dengan akun Anda (root)
5. OK. Berhasil masuk ke mysql server versi baru 5.1.9

UJI 1
------
1. Dengan server baru masih nyala, coba Anda buka server lama.
2. Server jalan dua-duanya tapi ada peringatan:


C:\apache\mysql\bin>mysqld
Cannot initialize InnoDB as 'innodb_data_file_path' is not set. If you do not want to use transactional InnoDB tables, add a line skip-innodb to the [mysqld] section of init parameters in your my.cnf or my.ini. If you want to use InnoDB tables, add for example, innodb_data_file_path = ibdata1:30M
But to get good performance you should adjust for your hardware the InnoDB startup options listed in section 2 at
http://www.innodb.com/ibman.html

3. Sekarang login ke server lama.
4. OK. Bisa masuk ke server versi 3.23
5. Ketika sudah login di server lama dan mencoba login ke server baru. Ternyata masuknya ke server lama.

UJI 2
-------
1. Sekarang matikan kedua server.
2. Buka dengan urutan: server lama, server baru
3. Server baru tidak bisa dipanggil.
4. Matikan server lama.
5. Hidupkan server baru. >> OK Nyala
6. Login >> OK Bisa.

UJI 3
-------
1. Sekarang coba dibalik: server baru, server lama
2. Ok. Dua-duanya lama, seperti percobaan pertama.
3. Login ke server baru.
4. Kagak bisa…..
5. Login di server versi baru dengan akun di server versi lama >> BISA

KESIMPULAN
----------------
1. Jika server versi lama dijalankan, maka server versi baru tidak bisa dijalankan.
2. Jika kedua server dijalankan, dengan urutan versi baru – versi lama, maka server versi baru tidak bisa diakses. Yaitu kalah dengan yang versi lama.
3. So, untuk menggunakan versi baru dimana sudah terdapat versi lama, lakukan
a. Matikan server yang versi lama
b. Hapus file konfigurasi dari server versi lama atau di-rename, C:\my.cnf dan
C:\WINDOWS\SYSTEM\my.ini
c. Jalankan server versi baru.
4. OK. Ngoprek selesai.


MENJALANKAN DUA SERVER DENGAN BEDA PORT

1. Untuk server versi lama biasanya menggunakan 3306
2. Untuk versi baru kita akan menggunakan 3307
3. Caranya: Copy file my-small.ini ke my.ini di direktori mysql yang versi baru.
4. Ubah port di my.ini ke 3307 (ada dua tempat).
5. Jalankan server lama dan baru.
6. Tes dengan menggunakan mysqladmin yang versi baru
7. Berikut ini untuk yang versi baru (port 3307), password yang di server baru.


F:\PROGRAMMER\MySQL\MySql\mysql-5.1.9-beta-win32\bin>mysqladmin -h localhost -u root -p --port=3307 version
Enter password: *****
F:\PROGRA~1\MYSQL\MYSQL\MYSQL-~1.9-B\BIN\MYSQLA~1.EXE Ver 8.41 Distrib 5.1.9-beta, for Win32 on ia32
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license

Server version 5.1.9-beta
Protocol version 10
Connection localhost via TCP/IP
TCP port 3307
Uptime: 2 min 21 sec

Threads: 1 Questions: 2 Slow queries: 0 Opens: 0 Flush tables: 1
Open tables: 3 Queries per second avg: 0.014

8. Berikut ini untuk yang versi lama (port 3306), password yang di server lama.


F:\PROGRAMMER\MySQL\MySql\mysql-5.1.9-beta-win32\bin>mysqladmin -h
localhost -u root -p --port=3306 version
Enter password:
F:\PROGRA~1\MYSQL\MYSQL\MYSQL-~1.9-B\BIN\MYSQLA~1.EXE Ver 8.41 Distrib 5.1.9-beta, for Win32 on ia32
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license

Server version 3.23.47-max-debug
Protocol version 10
Connection localhost via TCP/IP
TCP port 3306
Uptime: 5 min 46 sec

Threads: 1 Questions: 2 Slow queries: 0 Opens: 6 Flush tables: 1
Open tables: 0 Queries per second avg: 0.006 Memory in use: 8307K Max memory used: 8323K

LOGIN DI KEDUA SERVER

1. Setelah Anda cek bahwa kedua server jalan dengan port masing-masing yang berbeda, Anda bisa login di kedua server masing-masing.
2. Jangan lupa, jika Anda menggunakan password yang berbeda pada masing-masing server, maka harus diisi sesuai dengan passwordnya masing-masing


HAVE FUN!!!

2 komentar:

Anonim mengatakan...

Pak Galih,Bagaimana menginstall
xampp dan php triad bersamaan?
Apakah bisa?mengingat direktorinya
yang berbeda?
kalau bisa tolong Langkah-langkahnya.....
trima kasih...

Anonim mengatakan...

Bisa, saja, sebenarnya yang perlu diperhatikan adalah, masing instalasi mysql server dalam paket2 tsb harus berada pada port yang berbeda, misal: xampp: 3307, phptriad: 3306. Begitu juga server apache-nya, buat port-nya yang berbeda, misal, satunya 80, yang lainnya 8080.

Pertanyaan:
Kenapa kok report2 instal 2 aplikasi terintegrasi tsb? satu saja kan sudah cukup.
Ntar tutorial lengkapnya insya Allah saya posting di situs http://if.web.id