Tampilkan postingan dengan label Database. Tampilkan semua postingan
Tampilkan postingan dengan label Database. Tampilkan semua postingan

Instalasi Wordpress 3.5.1 Di Ubuntu Server 12.04 Dengan Backend MySQL

Wordpress adalah salah satu blog engine paling banyak dipakai saat ini. Wordpress juga sangat terkenal di kalangan blogger sebagai platform yang sangat ramah SEO. Selain itu blog engine ini juga mempunyai ratusan hingga ribuan plugin dan theme yang sangat memanjakan para penggunanya. Kita bisa menggunakan Wordpress secara gratis di bawah domain wordpress.com atau meng-install sendiri di server hosting. Artikel Tutorial Ngoprek kali ini akan menjelaskan langkah-langkah instalasi Wordpress 3.5.1 di Ubuntu Server 12.04 Precise Pangolin dengan database backend MySQL.

Kompilasi dan Instalasi Oracle OCI8 Untuk PHP 5.4.0 di Linux CentOS

Selain MySQL, Oracle menjadi salah satu basis data (database) RDBMS yang banyak digunakan di perusahaan-perusahaan kelas enterprise. Kehandalan basis data Oracle dalam menangani data dalam ukuran sangat besar memang tidak perlu diragukan lagi. Selain dapat diakses menggunakan berbagai platform yang disediakan Oracle, kita juga dapat menggunakan bahasa pemrograman PHP untuk membangun aplikasi untuk penanganan datanya. Syaratnya kita harus memasang PHP yang sudah dikompilasi dengan dukungan OCI8. Untuk alasan praktis, pengguna bisa saja memilih menggunakan XAMPP yang biasanya sudah memasukkan dukungan OCI8 untuk mengakses basis data Oracle. Sedangkan bagi mereka yang memilih untuk melakukan kompilasi PHP secara manual harus pula melakukan kompilasi OCI8.

Persiapan Kompilasi OCI8
Di sistem operasi Linux CentOS 5.5 atau rilis sesudahnya, kita harus terlebih dahulu memasang Instant Client sebagai prasyarat kompilasi driver OCI8. Paket RPM untuk Instant Client ini dapat diunduh di situs resmi Oracle. Lakukan instalasi sebagai user root.
rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm
Jika menggunakan CentOS 64 bit atau sistem operasi Linux lain maka sesuaikan paket yang diunduh dari alamat ini.

Kompilasi dan Instalasi OCI8
Kode sumber OCI8 yang dibutuhkan untuk kompilasi ini dapat kita unduh dari situs pecl. Saat ini versi terbaru adalah 1.4.7. Ekstrak berkas tersebut lalu masuk ke dalam direktori hasil ekstrak.
tar -xzvf oci8-1.4.7.tgz
cd oci8-1.4.7
Siapkan direktori ini untuk kompilasi:
/opt/bin/phpize
Pemanggilan phpize dengan path lengkap seperti ini harus dilakukan karena sebelumnya kita melakukan kompilasi PHP 5.4.0 dengan target direktori /opt. Lanjutkan dengan melakukan konfigurasi:
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib/ --with-php-config=/opt/bin/php-config
Lakukan kompilasi dan instalasi OCI8 dengan mengeksekusi perintah berikut sebagai user root:
make install
Pastikan OCI8 terpasang dengan baik, tanda-tandanya kita akan mendapatkan oci8.so di direktori /opt/lib/php/extensions/no-debug-non-zts-20100525.

Konfigurasi PHP
Setelah berhasil melakukan kompilasi dan instalasi OCI8, berikutnya kita harus menambahkan baris berikut di konfigurasi php.ini yang biasanya terdapat di /etc/httpd/php.ini:
extensions=oci8.so
Kemudian restart service Apache:
service httpd restart
Fungsi phpinfo() akan menampilkan informasi seperti pada tangkapan layar berikut yang menandakan kompilasi dan instalasi OCI8 di CentOS 5.5 berhasil dengan baik.
Referensi: php.net.

Install Oracle Heterogeneous Services Untuk MySQL di Oracle Linux 6.2

Beberapa waktu yang lalu saya sudah menulis tentang Oracle HS (Heterogeneous Services) di blog ini. Kala itu saya menggunakan Oracle HS di sistem operasi RedHat Enterprise Linux 4.5 dengan database Oracle 10g R2 XE (Express Edition) untuk mengakses database MySQL di sistem operasi Windows Server 2003. Di artikel ini saya akan membahas topik yang sama tapi kasusnya berbeda. Kali ini database Oracle 11g R2 Enterprise Edition terpasang di Oracle Linux 6.2, sedangkan database MySQL di Windows Server 2003. Dalam kasus ini kita tidak perlu melakukan konfigurasi di MySQL atau Windows Server 2003, semua konfigurasi Oracle HS akan dilakukan di sisi Oracle Linux 6.2.

Kita mulai dengan memasang driver ODBC untuk MySQL di server Oracle Linux 6.2.
su
rpm -ivh mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
Paket RPM tersebut sudah ada di DVD installer Oracle Linux 6.2 tapi kita bisa juga mengunduhnya dari situs MySQL. Namun dari pengalaman saya, installer ODBC dari situs MySQL membutuhkan paket dependency yang belum tersedia di Oracle Linux 6.2.

Selanjutnya kita akan membuat konfigurasi ODBC di /etc/odbc.ini, gunakan editor seperti vim atau nano untuk menambahkan baris berikut ke berkas tersebut.
[MY_SQL]
DRIVER = /usr/lib64/libmyodbc5.so
SERVER = 10.15.5.71
UID = username
PWD = password
DATABASE = database
PORT = 3306

[ODBC]
TRACE = 1
TRACEFILE = /tmp/odbc.log
Ganti informasi SERVER, UID, PWD, DATABASE masing-masing secara berurutan dengan alamat IP server, username, password user bersangkutan, dan basis data MySQL yang akan diakses.

Kita juga harus membuat konfigurasi Oracle HS di $ORACLE_HOME/hs/admin/initSID.ora yang berisi data-data di bawah ini.
HS_FDS_CONNECT_INFO = MY_SQL
HS_FDS_TRACE_LEVEL = DEBUG
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P15

set ODBCINI = /etc/odbc.ini
set ODBCINSTINI = /etc/odbcinst.ini
Perhatikan baris HS_FDS_CONNECT_INFO harus memiliki nilai yang sama dengan konfigurasi di /etc/odbc.ini. $ORACLE_HOME adalah direktori untuk produk database Oracle. Di Oracle Linux 6.2 kita bisa menampilkannya dengan perintah:
echo $ORACLE_HOME
SID pada initSID.ora harus diganti dengan nama SID yang akan digunakan untuk mengakses MySQL. Di sistem Oracle Linux yang saya gunakan, path lengkap untuk konfigurasi inisial Oracle HS menjadi /oracle/product/11.2.0/dbhome_1/hs/admin/initMYSQLDB.ora.

Terakhir, kita harus menambahkan konfigurasi untuk mengakses database MySQL melalui Oracle HS (Heterogeneous Services) di $ORACLE_HOME/network/admin/tnsnames.ora dan $ORACLE_HOME/network/admin/listener.ora. Kedua konfigurasi ini sangat sensitifm sedikit kesalahan ketik saja akan mengakibatkan Oracle HS tidak berjalan dengan baik. Berikut cuplikan untuk konfigurasi tnsnames.ora.
MYSQLDB =
   (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = db.company.com)(PORT = 1521))
         (CONNECT_DATA =
            (SID = MYSQLDB)
      )
      (HS = OK)
   )
Tambahkan baris-baris di atas ke baris terakhir tnsnames.ora. Jangan lupa mengganti db.company.com pada parameter HOST dengan nama domain atau alamat IP server Oracle Linux 6.2. Lalu di listener.ora konfigurasinya menjadi:
SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
        (SID_NAME = MYSQLDB)
        (ORACLE_HOME = /oracle/product/11.2.0/dbhome_1)
        (PROGRAM = dg4odbc)
     )
  )

LISTENER =
  (DESCRIPTION_LIST =
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db.company.com)(PORT = 1521))
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
     )
     (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = db.company.com)(PORT = 1522))
      )
   )

ADR_BASE_LISTENER = /oracle
Konfigurasi yang berwarna merah menandakan baris yang saya tambahkan di konfigurasi lama. Samakan db.company.com pada parameter HOST seperti pada tnsnames.ora. Selanjutnya kita reload konfigurasi listener Oracle dengan menjalankan perintah berikut dari terminal:
lsnrctl reload
Pastikan instance untuk layanan MySQL sudah dijalankan dengan perintah lsnrctl status yang menghasilkan output untuk SID MYSQLDB, lebih kurang seperti:
Service "MYSQLDB" has 1 instance(s).
   Instance "MYSQLDB", status UNKNOWN, has 1 handler(s) for this service...
Cek juga apakah output dari lsnrctl services sudah menampilkan instance MYSQLDB. Jika sudah, masuk ke Oracle menggunakan sqlplus, buat database link, dan coba jalankan query ke server MySQL.
sqlplus / as sysdba
create public database link mysql connect to "username" identified by "password" using 'MYSQLDB'
select from nm_tabel@mysql
mysql adalah nama database link yang kita buat pada perintah create public database link. Ganti username dan password seperti yang kita gunakan di /etc/odbc.ini. Ganti juga nm_tabel dengan nama tabel yang ada di database yang kita tetapkan di /etc/odbc.ini. Seharusnya perintah terakhir menampilkan semua record yang ada di tabel nm_tabel jika konfigurasi instalasi Oracle HS sudah tepat.

Instalasi MariaDB, MySQL Fork di Fedora GNU/Linux 16

Ketika Sun Microsystems membeli MySQL dari MySQL AB di tahun 2008 kemudian dilanjutkan dengan pengambilalihan kepemilikan Sun oleh Oracle, Michael 'Monty' Wildenius dan beberapa penulis asli MySQL tidak pernah benar-benar ikut diakuisisi. Monty malah membuat MariaDB yang ia sebut sebagai 'drop-in replacement' untuk MySQL. MariaDB memang dikembangkan dengan basis MySQL. Semua fitur yang ada di MySQL hampir dipastikan akan ada di MariaDB juga. Semua perintah, antarmuka, pustaka, hingga API yang ada di MySQL juga ada di MariaDB. Bahkan pengguna dapat langsung menggunakan basis data milik MySQL di MariaDB tanpa konversi sama sekali.

Saat ini MariaDB sudah mencapai versi 5.3.6 untuk rilis stabil. Pilihan cara instalasi yang disediakan untuk setiap rilis cukup beragam. Untuk distro RedHat, Fedora, CentOS, OpenSUSE, Oracle Linux dan distro lain berbasis RPM tersedia installer berbentuk RPM. Pengguna Windows dan Solaris juga dapat mengunduh installer untuk masing-masing sistem operasi. Pengguna Debian dan Ubuntu bahkan lebih beruntung karena dapat menggunakan repo dari pengembang MariaDB. Instalasi di distro selain yang disebutkan sebelumnya dapat menggunakan installer berbentuk biner atau kompilasi kode sumber (source code). Di artikerl ini kita akan mencoba melakukan instalasi MariaDB 5.3.5 di Linux Fedora 16.

Installer biner MariaDB dapat diunduh dari situs resminya. Sebelum memulai instalasi, kita tambahkan dulu group dan user untuk mysql.

su
groupadd mysql
useradd -g mysql mysql
Ekstrak berkas tar berisi paket biner MariaDB. Kita dapat mengekstraknya ke direktori /usr/local yang menjadi standar di beberapa distro. Namun kita dapat saja mengekstraknya ke direktori lain semisal /opt. Setelah ekstraksi pindah ke direktori yang menampung ekstraksi MariaDB.
cd Dowloads
tar xzvf mariadb-5.3.5-ga-Linux-x86_64.tar.gz -C /opt
cd /opt
 
Langkah selanjutnya buat symbolic link mysql ke target direktori hasi ekstraksi tadi. Lalu masuk ke direktori mysql.
ln -s /opt/mariadb-5.3.5-ga-Linux-x86_64 mysql
cd mysql
Lanjutkan dengan menjalankan skrip untuk membuat basis data sistem yang dibutuhkan MariaDB.
./scripts/mysql_install_db --user=mysql
Perintah tersebut akan membuat basis data awal yang harus ada untuk menjalankan MariaDB di /var/lib/mysql. Kita juga harus membuat direktori mysqld di bawah /var/run yang dibutuhkan untuk run time MariaDB, jangan lupa mengubah kepemilikannya ke mysql.
mkdir /var/run/mysqld
chown mysql:dba /var/run/mysqld
Coba jalankan MariaDB:
./bin/mysqld_safe --user=mysql &
Bila muncul pesan galat (error) saat mengeksekusi perintah di atas, cek berkas  log di /var/log/mysqld.log untuk mengetahui lebih jelas masalah yang terjadi. Jika perintah di atas sukses, cobalah masuk ke MariaDB:
./bin/mysql -u root --socket=/var/lib/mysql/mysql.sock
Coba juga untuk menjalankan perintah SQL setelah masuk di konsol MariaDB seperti tampak pada tangkapan layar di bawah ini.

Mengakses Database MySQL Dari Oracle Dengan Heterogeneous Service

Oracle Heterogeneous Services atau biasa disingkat Oracle HS saja merupakan salah satu fitur hebat yang dimiliki server database Oracle. Mengapa saya sebut hebat? Dengan Oracle Heterogeneous Services, kita dapat mengakses berbagai database eksternal non-Oracle langsung dari Oracle. Seolah-olah kita memiliki satu database saja. Kita juga tidak perlu lagi login satu per satu setiap layanan database yang kita miliki. Oracle Heterogeneous Services sangat cocok untuk menyatukan semua server database yang beraneka ragam.

Oracle Heterogeneous Services ini ada dua, Oracle Transparent Gateways dan Generic Connectivity. Server database yang dapat diakses cukup beragam, mulai dari MySQL, Sybase, PostgreSQL, dll. Di tutorial ini kita akan mencoba mengakses database MySQL dari Oracle dengan Generic Heterogeneous Services. Untuk itu kita sudah harus punya satu server Oracle XE (Express Edition) dan satu server MySQL yang sudah running dengan baik.

Keseluruhan konfigurasi akan dilakukan di server Oracle. Kita hanya butuh informasi username, password, database, dan alamat IP dari server MySQL yang akan diakses. Di server Oracle, kita harus memasang dukungan ODBC untuk MySQL. Driver-nya dapat diunduh dari mysql.com. Setelah driver MySQL ODBC dipasang, buat konfigurasi di /etc/odbc.ini sebagai berikut.
[MY_SQL]
DRIVER = /usr/lib/libmyodbc5.so
SERVER = 10.15.5.71
UID = username
PWD = password
DATABASE = my_database
PORT = 3306
Ganti 10.15.5.71 dengan alamat IP server MySQL, username dengan nama user MySQL, password dengan password user mysql, dan my_database dengan nama database mysql yang hendak diakses dari Oracle.

Tambahkan konfigurasi heterogeneous system untuk MySQL di /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/hs/admin/initMYSQL_DB.ora.
HS_FDS_CONNECT_INFO = MY_SQL
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_SHAREABLE_NAME = /usr/lib/libmyodbc5.so
Update konfigurasi listener Oracle di /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora , dengan menambahkan entry untuk database MySQL.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = MYSQL_DB)
      (ORACLE_HOME = /usr/lib/oracle/xe/app/oracle/product/10.2.0/server)
      (PROGRAM = hsodbc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )
Kemudian update konfigurasi tnsnames Oracle, dengan menambahkan untuk MySQL. Konfigurasi ini dapat ditemukan di /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/tnsnames.ora.
MYSQL_DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SID = MYSQL_DB)
    )
    (HS = OK)
  )
Reload listener Oracle untuk memperbarui konfigurasi yang baru kita tambahkan.
lsnrctl reload
Login ke server Oracle, buat database link ke MySQL, lalu tes query ke salah satu tabel di database MySQL.
sqlplus / as sysdba
create database link mysql connect to "username" identified by "password" using 'MYSQL_DB';
select * from m_kota@mysql

Mencoba MySQL Cluster di Linux Debian

MySQL adalah salah satu poyek open source paling sukses hingga saat ini. Hampir semua aplikasi web modern menggunakan MySQL sebagai backend untuk basis datanya. MySQL bahkan menjadi salah satu komponen utama dari empat komponen dalam cerita sukses Linux menguasai pasar server. Huruf M pada LAMP merujuk ke MySQL, tiga lainnya terdiri dari Linux, Apache, dan PHP. Sebagai komponen penting, MySQL harus selalu tersedia untuk melayani berbagai request dari user.

Menjaga ketersediaan suatu layanan seperti MySQL tentu bukan suatu pekerjaan mudah, ada banyak faktor yang berpengaruh. Namun bukan pula sebuah perkara yang mustahil. Bahkan Oracle yang kini menjadi pemilik MySQL sudah menyediakan MySQL Cluster. Bagaimana MySQL Cluster menjamin layanan MySQL akan selalu tersedia? Redundancy. MySQL akan dijalankan di beberapa server, sehingga ketika salah satu server mati akan segera digantikan oleh server lainnya.

Nah, di tutorial kali ini kita akan mencoba memasang MySQL Cluster di Debian GNU/Linux. Walaupun idealnya sebuah sistem cluster dijalankan di beberapa server berbeda, dalam tutorial ini kita akan menjalankannya dalam satu server saja. Berikut step by step instalasi MySQL Cluster di Debian GNU/Linux.
  1. Unduh installer MySQL Cluster dari mysql.com. Pilih Linux-Generic, sesuaikan arsitekturnya dengan distro Linux yang digunakan.
  2. Ekstrak tarball berisi installer biner MySQL Cluster.
  3. tar -xzvf mysql-cluster-gpl-7.2.4-linux2.6-x86_64.tar.gz
    mv mysql-cluster-gpl-7.2.4-linux2.6-x86_64 mysqlc
  4. Buat direktori untuk menampung data dan konfigurasi MySQL Cluster.
  5. mkdir -p my_cluster/{conf,mysqld_data,ndb_data}
  6. Buat konfigurasi untuk mysql.
  7. vim my_cluster/conf/my.cnf
    Salin tempel pengaturan berikut ke berkas tersebut.
    [mysqld]
    ndbcluster
    datadir=~/my_cluster/mysqld_data
    basedir=~/mysqlc
    port=5000
  8. Buat konfigurasi untuk cluster yang akan dijalankan. Di contoh ini kita akan menjalankan dua node.
    vim my_cluster/conf/config.ini
    Contoh konfigurasi paling sederhana untuk satu server MySQL (mysqld), dua node data (ndbd), dan satu node manajemen (ndb_mgmd).
    [ndb_mgmd]
    hostname=localhost
    datadir=~/mysql_cluster/ndb_data
    NodeId=1

    [ndbd default]
    noofreplicas=2
    datadir=~/mysql_cluster/ndb_data

    [ndbd]
    hostname=localhost
    NodeId=3

    [ndbd]
    hostname=localhost
    NodeId=4

    [mysqld]
    NodeId=50
  9. Jalankan skrip mysql_install_db untuk mempopulasikan basis data yang dibutuhkan MySQL.
  10. ./mysqlc/scripts/mysql_install_db --no-defaults --datadir=~/mysql_cluster/mysqld_data/
  11. Jalankan node manajemen, lalu node data secara berurutan.
  12. ./mysqlc/bin/ndb_mgmd -f ~/mysql_cluster/conf/config.ini --initial --configdir=~/mysql_cluster/conf
    ./mysqlc/bin/ndbd -c localhost:1186
    ./mysqlc/bin/ndbd -c localhost:1186
    Hasilnya tampak seperti pada screen shot berikut.
  13. Cek status node data.
  14. ./mysqlc/bin/ndb_mgm -e show
    Pastikan proses start up node-node ini sudah selesai.
  15. Jalankan server MySQL (mysqld).
  16. ./mysqlc/bin/mysqld --defaults-file=~mysql_cluster/conf/my.cnf
  17. Login ke server MySQL dan cobalah untuk mebuat basis data dan tabel menggunakan storage engine ndb.
  18. ./mysqlc/bin/mysql -h 127.0.0.1 -P 5000 -u root
    create database coba_cluster;
    use coba_cluster;
    create table coba(id int not null primary key) engine=ndb;
    insert into coba values (1), (2), (3), (4), (5);
    select * from coba
MySQL Cluster selesai di-install :-)