Pembahasan kali ini masih seputar MySQL dan SSL. Tetapi kali ini kita akan mencoba membuat program sendiri untuk mengakses server MySQL dengan mode SSL ini. Sebagai bahan acuan silahkan dibaca kembali artikel sebelumnya: Cara mengkonfigurasi koneksi SSL di MySQL Server for Windows & Akses MySQL secara remote dengan mode SSL.
Peralatan yang saya gunakan dalam pembahsan kali ini adalah sbb:
1. Server MySQL yang sudah aktif.
2. Delphi 7 dengan component ZeosDBO versi 7.1
Kesepakatan pengaturan folder & jaringannya:
a. MySQL server sudah dikonfigurasi SSL dan aktif
b. E:\mysqlCerts = folder untuk menyimpan “Certificates”
Baik kita mulai codingnya.
Jalankan Delphi 7
Karena ini hanya sebagai demo saja, saya buat programnya sesimple mungkin dan ditempatkan dalam satu form saja. Baik untuk setting akun database, SSL maupun hasil querynya.
A. Tata letak komponen dan form
1. Buat project baru dengan meng-klik menu File – New – Application.
2. Beri nama project baru ini misalnya DemoSSL.
3. Tempatkan pada form komponen-komponen seperti pada gambar 1.
a. Dua buah TButton – dari pallete Standard
b. Delapan buah TEdit – dari pallete Standard
c. Sebelas TLabel – dari pallete Standard
d. Satu TCheckbox – dari pallete Standard
e. Satu buah TMemo – dari pallete Standard
f. Satu buah TDBGrid – dari pallete Data Control
g. TZConnection – dari pallete ZeosDBO
h. TZQuery – dari pallete ZeosDBO
i. TDataSource – dari pallete Data Access.
B. Atur properties sbb:
1. ZConnection1:
Protocol: mysql-5
2. ZQuery1:
Connection = ZConnection1
3. DataSource1:
DataSet = ZQuery1
4. Edit1 :
Name = cHost
Text = localhost
5. Edit2 :
Name = cPort
Text = 3306
6. Edit3 :
Name = cUser
Text = ssluser
7. Edit4 :
Name = cPass
Text = sslpass
8. Edit5 :
Name = cDB
Text = test
9. Edit6 :
Enabled = False
Name = cKey
Text = E:\mysqlCerts\client-key.pem
10. Edit7 :
Enabled = False
Name = cCert
Text = E:\mysqlCerts\client-cert.pem
11. Edit8 :
Enabled = False
Name = cCA
Text = E:\mysqlCerts\ca-cert.pem
12. TMemo1
Enabled = False
Name = cQry
13. DBGrid1 :
DataSource = DataSource1
14. CheckBox1 :
Caption = Use SSL
Name = cbSSL
15. TButton1
Caption = Test koneksi
Name = btnKoneksi
16. TButton2
Enabled = False
Caption = Test Query
Name = btnQuery
Atur Events:
1. Form1 OnClose:
begin
ZConnection1.Connected:= false;
end;
2. cbSSL OnClick:
begin
cKey.Enabled:= cbSSL.Checked;
cCert.Enabled:= cbSSL.Checked;
cCa.Enabled:= cbSSL.Checked;
ZConnection1.Connected:= false;
cQry.Enabled:= ZConnection1.Connected;
btnQuery.Enabled:= ZConnection1.Connected;
end;
3. btnKoneksi OnClick:
begin
with ZConnection1 do
begin
Connected:= False;
Database := cDB.Text;
HostName := cHost.Text;
Password := cPass.Text;
Port := StrToIntDef(cPort.Text,0);
Protocol := 'mysql-5';
User := cUser.Text;
if cbSSL.Checked then
begin
Properties.Values['MYSQL_SSL']:= 'TRUE';
Properties.Values['MYSQL_SSL_CA'] := cCA.Text;
Properties.Values['MYSQL_SSL_CERT'] := cCert.Text;
Properties.Values['MYSQL_SSL_KEY'] := cKey.Text;
end else
begin
Properties.Values['MYSQL_SSL']:= 'FALSE';
Properties.Values['MYSQL_SSL_CA'] := '';
Properties.Values['MYSQL_SSL_CERT'] := '';
Properties.Values['MYSQL_SSL_KEY'] := '';
end;
end;
try
ZConnection1.Connect;
MessageDlg('Connection Successful', mtInformation, [mbOK], 0);
except
on E : Exception do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
cQry.Enabled:= ZConnection1.Connected;
btnQuery.Enabled:= ZConnection1.Connected;
end;
4. btnQuery OnClick:
begin
ZQuery1.Active:= false;
ZQuery1.SQL.Text:=cQry.Lines.Text;
try
ZQuery1.Active:= true;
except
on E : Exception do
MessageDlg(E.Message, mtError, [mbOK], 0);
end;
end;
Selanjutnya save projectnya dilanjutkan compile, kemudian copy file libmySQL.dll dari folder E:\MySQL51\bin ke folder dimana program yang barusan dibuat berada. Jalanin deh program DemoSSL.exe
Kalau tidak ada kesalaham ketik seharusnya programnya bisa dicompile dan berjalan.
Hasil kompilasi demo program ini bisa digunakan untuk mengakses server MySQL secara local, intranet ataupun internet baik dengan mode SSL atau tanpa SSL, tergantung dari pengaturan server dan hak akses usernya.
Semoga bisa dipetik sesuatu yang bermanfaat dari tulisan singkat ini.
Salam.
Demo program untuk akses MySQL dengan mode SSL (662.1 KiB, 416 hits)