MySQL merupakan jenis database yang mampu dijalankan dengan menggunakan konsep klien server. Agar klien dapat terkoneksi dengan server database maka beberapa langkah yang perlu diperhatikan adalah dengan menambahkan registrasi account user klien tersebut pada server database mysql dengan menggunakan perintah berikut ini :
mysql> grant all prvileges on *.* to [nama user klien]@[nama host/ip klien] identified by 'passwrd';
setelah ini baru klien / user tersebut dapat mengakses server database tersebut, tapi perlu diinget juga bahwa koneksi ini akan berhasil tentunnya dengan dukungan firewall yang memperbolehkan koneksi ini terjadi.. Hormat pak polisi!!! ;-)
referensi:
forum mysql 34,34957,56380
Tampilkan postingan dengan label mysql. Tampilkan semua postingan
Tampilkan postingan dengan label mysql. Tampilkan semua postingan
Rabu, 17 Februari 2010
MySQL default-character-set utf8
Untuk bisa menggunakan mysql dengan menggunakan konfigurasi default karakter versi UTF-8 dapat dengan :
Melalui konfigurasi pada file my.cnf (linux) atau my.ini (windows)
untuk cara ini cukup dengan menambahkan baris
default-character-set = utf8
pada bagian [client], [mysql], dan [mysqld]
Pada aplikasi client
apabila menggunakan mysql console (mysql.exe kalau di windows) dapat dengan menggunakan perintah :
set names 'utf8' (dapat dengan atau tanpa tanda kutip tunggal)
atau
charset utf8
apabila pada aplikasi web dapat dengan mengirimkan perintah tersebut sebagai query pada fungsi mysql_query atau fungsi mysql_set_charset (khusus untuk php 5.2.3 keatas) setelah koneksi ke mysql dibuka dengan mysql_connect.
buat yang tertarik ingin mempelajari lebih jauh mengenai panduan ini dapat mengunjungi beberapa referensi dibawah ini.
referensi:
forum mysql 103,28072,28072
mysql manual
php manual mysql
php mysql charset
Melalui konfigurasi pada file my.cnf (linux) atau my.ini (windows)
untuk cara ini cukup dengan menambahkan baris
default-character-set = utf8
pada bagian [client], [mysql], dan [mysqld]
Pada aplikasi client
apabila menggunakan mysql console (mysql.exe kalau di windows) dapat dengan menggunakan perintah :
set names 'utf8' (dapat dengan atau tanpa tanda kutip tunggal)
atau
charset utf8
apabila pada aplikasi web dapat dengan mengirimkan perintah tersebut sebagai query pada fungsi mysql_query atau fungsi mysql_set_charset (khusus untuk php 5.2.3 keatas) setelah koneksi ke mysql dibuka dengan mysql_connect.
buat yang tertarik ingin mempelajari lebih jauh mengenai panduan ini dapat mengunjungi beberapa referensi dibawah ini.
referensi:
forum mysql 103,28072,28072
mysql manual
php manual mysql
php mysql charset
Minggu, 31 Januari 2010
Mysql 5 characterEncoding
Pada mysql 5 pada saat mengeksekusi kueri akan dapat saja menemui tampilan error ini :
java.sql.SQLException: Unknown initial character set index '192' received from server. Initial client character set can be forced via the 'characterEncoding' property.
Ini bukan menunjukkan bahwa setingan default untuk character-set-server dan dan collation-server menunjukkan nilai default yang tidak terdata dalam daftar charset yang didukung oleh mysql, sehingga menimbulkan kesalahan saat menjalankan kueri menggunakan aplikasi mysql-java-connector.
Terdapat beberapa solusi yang dapat diambil, diantaranya :
1. pada bagian connection URL dari java-mysql-connector tambahkan parameter characterEncoding=UTF8
contoh:
jdbc:mysql://localhost:3306/nama_database?autoReconnect=true&characterEncoding=UTF8
2. atau dengan menambahkan konfigurasi ini pada my.cnf pada bagian [mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
referensi:
mysql bugs 3114
mysql bugs 23645
mysql bugs 26178
dbforum: character encoding
mysql.com character set
nb:
Kondisi ini terjadi pada distro opensuse 11.2 dengan mysql versi 5.1.36 dilihat pada situs distrowatch.com.
java.sql.SQLException: Unknown initial character set index '192' received from server. Initial client character set can be forced via the 'characterEncoding' property.
Ini bukan menunjukkan bahwa setingan default untuk character-set-server dan dan collation-server menunjukkan nilai default yang tidak terdata dalam daftar charset yang didukung oleh mysql, sehingga menimbulkan kesalahan saat menjalankan kueri menggunakan aplikasi mysql-java-connector.
Terdapat beberapa solusi yang dapat diambil, diantaranya :
1. pada bagian connection URL dari java-mysql-connector tambahkan parameter characterEncoding=UTF8
contoh:
jdbc:mysql://localhost:3306/nama_database?autoReconnect=true&characterEncoding=UTF8
2. atau dengan menambahkan konfigurasi ini pada my.cnf pada bagian [mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
referensi:
mysql bugs 3114
mysql bugs 23645
mysql bugs 26178
dbforum: character encoding
mysql.com character set
nb:
Kondisi ini terjadi pada distro opensuse 11.2 dengan mysql versi 5.1.36 dilihat pada situs distrowatch.com.
Kamis, 18 September 2008
Database Grid MySQL GUI
“Jam” Database
tengs to :
Ezzaral @ http://www.daniweb.com/forums/thread118194.html
Poochi and Unicman @ http://www.codeguru.com/forum/showthread.php?t=33738
The Java Developers Almanac 1.4. http://exampledepot.com/egs/javax.swing.table/SelEvent.html
Pada tutorial jam kali ini kita akan membahas bagaimana memanfaatkan Netbeans (6.x) untuk membuat aplikasi database GUI menggunakan SMDB MySQL.
Ada beberapa tahapan dalam pembuatan aplikasi ini :
mempersiapkan komponen apa saja yang diperlukan
untuk dapat membuat aplikasi database ada 1 komponen tambahan yang perlu dipersiapkan, yakni driver JDBC untuk MySQL. Drivernya bisa diperoleh pada situs resmi MySQL di mysql.org.
mendesain database
pada tahap ini kita tentukan database informasi apa yang akan diolah. Contoh : untuk membuat database informasi kontak kita memerlukan informasi berupa nama, email, dan keterangan. Informasi ini kita susun dalam suatu tabel dalam database yang kita beri nama kontak. Berikut ini merupakan skrip SQL untuk membuat database dan tabel kontak :
CREATE DATABASE `test`;
CREATE TABLE `kontak` (
`id` int(11) NOT NULL auto_increment,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`info` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
mengatur kelas
kelas yang akan kita buat ini akan berisikan skrip untuk melakukan penambahan, pengubahan, dan penghapusan record yang ada dalam tabel kontak. Secara umum kelas yang kita definisikan akan memiliki metode untuk query insert, update dan delete serta select. Berikut ini merupakan kelas diagram dari aplikasi yang akan dibuat.
Kelas : KontakGUI
Metode :
addRecord() : void
updateRecord() : void
deleteRecord() : void
openDatabase() : void
closeDatabase() : void
Variabel :
conn : java.sql.Connection
stmt : java.sql.Statement
id : String
nama : String
email : String
info : String
Di dalam kelas ini terdapat dua variabel utama yang akan digunakan untuk mengolah database, yakni : obyek conn dari kelas java.sql.Connection dan stmt dari kelas java.sql.Statement. Obyek conn digunakan untuk membuka dan menutup koneksi ke database, sedangkan obyek stmt digunakan untuk menjalankan query SQL DDL dan MDL.
skrip ;-)
Berikut ini beberapa skrip utama yang akan digunakan untuk membuat aplikasi database yang diurutkan berdasarkan prosesnya :
inisialisasi driver database
// cek driver mysql
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
messageBox(ex.getMessage());
}
membuka koneksi databse
try {
String url = "jdbc:mysql://localhost:3306/test";
conn = java.sql.DriverManager.getConnection(url, "root", "");
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
inisialisasi obyek statement
try {
stmt = conn.createStatement();
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML INSERT, UPDATE, dan DELETE / DDL
boolean hasil = false;
try {
hasil = stmt.execute(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML SELECT
java.sql.ResultSet hasil = null;
try {
hasil = stmt.executeQuery(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
memproses hasil query DML SELECT
while (hasil.next()) {
System.out.println(rs.getString("id") + rs.getString("nama") + rs.getString("email") + rs.getString("info"));
};
}
hasil.close();
hasil = null;
menutup statement
try{
stmt.close();
stmt = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
menutup koneksi database
try{
conn.close();
conn = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
tengs to :
Ezzaral @ http://www.daniweb.com/forums/thread118194.html
Poochi and Unicman @ http://www.codeguru.com/forum/showthread.php?t=33738
The Java Developers Almanac 1.4. http://exampledepot.com/egs/javax.swing.table/SelEvent.html
Pada tutorial jam kali ini kita akan membahas bagaimana memanfaatkan Netbeans (6.x) untuk membuat aplikasi database GUI menggunakan SMDB MySQL.
Ada beberapa tahapan dalam pembuatan aplikasi ini :
mempersiapkan komponen apa saja yang diperlukan
untuk dapat membuat aplikasi database ada 1 komponen tambahan yang perlu dipersiapkan, yakni driver JDBC untuk MySQL. Drivernya bisa diperoleh pada situs resmi MySQL di mysql.org.
mendesain database
pada tahap ini kita tentukan database informasi apa yang akan diolah. Contoh : untuk membuat database informasi kontak kita memerlukan informasi berupa nama, email, dan keterangan. Informasi ini kita susun dalam suatu tabel dalam database yang kita beri nama kontak. Berikut ini merupakan skrip SQL untuk membuat database dan tabel kontak :
CREATE DATABASE `test`;
CREATE TABLE `kontak` (
`id` int(11) NOT NULL auto_increment,
`nama` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`info` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
mengatur kelas
kelas yang akan kita buat ini akan berisikan skrip untuk melakukan penambahan, pengubahan, dan penghapusan record yang ada dalam tabel kontak. Secara umum kelas yang kita definisikan akan memiliki metode untuk query insert, update dan delete serta select. Berikut ini merupakan kelas diagram dari aplikasi yang akan dibuat.
Kelas : KontakGUI
Metode :
addRecord() : void
updateRecord() : void
deleteRecord() : void
openDatabase() : void
closeDatabase() : void
Variabel :
conn : java.sql.Connection
stmt : java.sql.Statement
id : String
nama : String
email : String
info : String
Di dalam kelas ini terdapat dua variabel utama yang akan digunakan untuk mengolah database, yakni : obyek conn dari kelas java.sql.Connection dan stmt dari kelas java.sql.Statement. Obyek conn digunakan untuk membuka dan menutup koneksi ke database, sedangkan obyek stmt digunakan untuk menjalankan query SQL DDL dan MDL.
skrip ;-)
Berikut ini beberapa skrip utama yang akan digunakan untuk membuat aplikasi database yang diurutkan berdasarkan prosesnya :
inisialisasi driver database
// cek driver mysql
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException ex) {
messageBox(ex.getMessage());
}
membuka koneksi databse
try {
String url = "jdbc:mysql://localhost:3306/test";
conn = java.sql.DriverManager.getConnection(url, "root", "");
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
inisialisasi obyek statement
try {
stmt = conn.createStatement();
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML INSERT, UPDATE, dan DELETE / DDL
boolean hasil = false;
try {
hasil = stmt.execute(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
menjalankan query DML SELECT
java.sql.ResultSet hasil = null;
try {
hasil = stmt.executeQuery(query);
} catch (SQLException sQLException) {
messageBox(sQLException.getMessage());
}
memproses hasil query DML SELECT
while (hasil.next()) {
System.out.println(rs.getString("id") + rs.getString("nama") + rs.getString("email") + rs.getString("info"));
};
}
hasil.close();
hasil = null;
menutup statement
try{
stmt.close();
stmt = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
menutup koneksi database
try{
conn.close();
conn = null;
} catch (SQLException exception) {
messageBox(exception.getMessage());
}
Selasa, 19 Agustus 2008
DataGrid dengan data dari MySQL menggunakan SharpDevelop 3.0
Terdapat 2 komponen library saat ini yang dapat digunakan untuk menggunakan database MySQL pada aplikasi C#, dari MySQL dengan Connector/NET-nya dan Mono dengan ByteFX-nya. Keduanya sama-sama mengikuti standar yang ada. Namun perbedaan keduanya setelah penulis menggunakannya, terdapat beberapa hal yang perlu menjadi perhatian disini :
Komponen MySQL.Data.dll belum mampu menangani tipe data DateTime dengan baik, karena masih menggunakan komponen MySqlDateTime sendiri. Terutama pada waktu informasi DataTime dari tabel menunjukkan nilai '0000-00-00'. ini dapat ditangani dengan baik oleh ByteFX.Data.dll yang akan mengkonversi nilai '0000-00-00' menjadi string kosong "".
Manajemen pooling yang lebih baik ditunjukkan oleh ByteFX.Data.dll dengan ditutupnya pooling saat aplikasi Desktop berhasil ditutup.
Error yang diberikan oleh aplikasi saat oleh komponen Mysql.Data.dll
Pada saat pengujian ini komponen Mysql.Data.dll yang digunakan versi 5.1.6.0 sedangkan ByteFX.Data.dll versi 0.7.6.2.
untuk mengisi DataGrid terdapat beberapa komponen yang dapat digunakan :
- MySqlConnection
- MySqlCommand
- MySqlDataAdapter
- MySqlCommandBuilder
- DataSet
- DataGrid
langkah-langkah yang perlu dilakukan :
1. menambahkan library MySql.Data.dll dari MySQL Connector/NET atau dapat menggunakan komponen ByteFX.Data.dll dari Mono.
2. Menambahkan semua obyek yang diperlukan
3. mengatur properti MySqlConnection
ConnectionString :
contoh :
server=localhost;userid=root;password=rootpwd;database=test
4. mengatur properti MySqlCommand
- Connection : di set pada obyek dari MySqlConnection
- CommandText : isikan dengan query sql SELECT yang akan dijalankan
5. mengatur properti MySqlDataAdapter
SelectCommand : isikan dengan obyek dari MySqlCommand
6. mengatur properti MySqlCommandBuilder
DataAdapter : isikan denga obyek dari MySqlDataAdapter
7. mengatur properti DataGrid
DataSource : isikan dengan obyek dari DataSet
8. pada event Load dari form tambahkan beberapa baris perintah ini :
// membuka koneksi ke mysql
mySqlConnection1.Open();
// mengisi dataset dengan data hasil eksekusi query
mySqlDataAdapter1.Fill(dataSet1, "telp");
// menampilkan hasil query pada datagrid
dataGrid1.DataMember = "telp";
// menutup koneksi mysql
mySqlConnection1.Close();
9. Tekan F5 (Run Project) Untuk milihat hasilnya.
Komponen MySQL.Data.dll belum mampu menangani tipe data DateTime dengan baik, karena masih menggunakan komponen MySqlDateTime sendiri. Terutama pada waktu informasi DataTime dari tabel menunjukkan nilai '0000-00-00'. ini dapat ditangani dengan baik oleh ByteFX.Data.dll yang akan mengkonversi nilai '0000-00-00' menjadi string kosong "".
Manajemen pooling yang lebih baik ditunjukkan oleh ByteFX.Data.dll dengan ditutupnya pooling saat aplikasi Desktop berhasil ditutup.
Error yang diberikan oleh aplikasi saat oleh komponen Mysql.Data.dll
System.Transactions Critical: 0 :http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/Unhandled Unhandled exception KMHDI_DB2008.exe System.Threading.SemaphoreFullException, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Adding the given count to the semaphore would cause it to exceed its maximum count. at System.Threading.Semaphore.Release(Int32 releaseCount)
at System.Threading.Semaphore.Release()
at MySql.Data.MySqlClient.MySqlPool.RemoveConnection(Driver driver)
at MySql.Data.MySqlClient.MySqlPoolManager.RemoveConnection(Driver driver)
at MySql.Data.MySqlClient.NativeDriver.Dispose(Boolean disposing)
at MySql.Data.MySqlClient.Driver.Close()
at MySql.Data.MySqlClient.NativeDriver.Finalize()System.Threading.SemaphoreFullException: Adding the given count to the semaphore would cause it to exceed its maximum count.
at System.Threading.Semaphore.Release(Int32 releaseCount)
at System.Threading.Semaphore.Release()
at MySql.Data.MySqlClient.MySqlPool.RemoveConnection(Driver driver)
at MySql.Data.MySqlClient.MySqlPoolManager.RemoveConnection(Driver driver)
at MySql.Data.MySqlClient.NativeDriver.Dispose(Boolean disposing)
at MySql.Data.MySqlClient.Driver.Close()
at MySql.Data.MySqlClient.NativeDriver.Finalize()
Pada saat pengujian ini komponen Mysql.Data.dll yang digunakan versi 5.1.6.0 sedangkan ByteFX.Data.dll versi 0.7.6.2.
untuk mengisi DataGrid terdapat beberapa komponen yang dapat digunakan :
- MySqlConnection
- MySqlCommand
- MySqlDataAdapter
- MySqlCommandBuilder
- DataSet
- DataGrid
langkah-langkah yang perlu dilakukan :
1. menambahkan library MySql.Data.dll dari MySQL Connector/NET atau dapat menggunakan komponen ByteFX.Data.dll dari Mono.
2. Menambahkan semua obyek yang diperlukan
3. mengatur properti MySqlConnection
ConnectionString :
contoh :
server=localhost;userid=root;password=rootpwd;database=test
4. mengatur properti MySqlCommand
- Connection : di set pada obyek dari MySqlConnection
- CommandText : isikan dengan query sql SELECT yang akan dijalankan
5. mengatur properti MySqlDataAdapter
SelectCommand : isikan dengan obyek dari MySqlCommand
6. mengatur properti MySqlCommandBuilder
DataAdapter : isikan denga obyek dari MySqlDataAdapter
7. mengatur properti DataGrid
DataSource : isikan dengan obyek dari DataSet
8. pada event Load dari form tambahkan beberapa baris perintah ini :
// membuka koneksi ke mysql
mySqlConnection1.Open();
// mengisi dataset dengan data hasil eksekusi query
mySqlDataAdapter1.Fill(dataSet1, "telp");
// menampilkan hasil query pada datagrid
dataGrid1.DataMember = "telp";
// menutup koneksi mysql
mySqlConnection1.Close();
9. Tekan F5 (Run Project) Untuk milihat hasilnya.
Langganan:
Postingan
(
Atom
)