Aplikasi django dapat berinteraksi dengan beberapa database server melalui module python terpisah, tulisan ini akan memandu anda untuk menggunakan database MySQL sebagai database server.
Django rilis stabil saat ini (0.96.2) mengharuskan anda untuk melakukan instalasi / kompulasi MySQLdb python module ver. 1.2.2 secara manual karena paket yang disediakan oleh yum package management baru pada versi 1.2.1 sementara yang dibutuhkan adalah versi 1.2.1p2 ke atas.
Instalasi Paket yang dibutuhkan
Beberapa paket development dibutuhkan untuk instalasi MySQLdb python module secara manual di langkah berikutnya.
yum install mysql mysql-server mysql-devel python-devel gcc cpp zlib-devel openssl-devel -y
Jalankan service MySQL dan masukkan ke dalam daftar service yang dimulai ketika mesin anda di reboot.
service mysqld start chkconfig --levels 235 mysqld on mysql_secure_installation
Create database yang ingin anda gunakan, create user untuk database tersebut apabila diperlukan.
mysql -u root -p mysql>create database namadatabase; mysql>quit
Instalasi MySQLdb Python Module 1.2.2
Hal ini dilakukan karena adapter database mysql untuk Django mengharuskan anda menggunakan MySQLdb versi 1.2.1p2 ke atas sementara versi instalasi melalui yum adalah 1.2.1. Cara lain adalah dengan menggunakan adapter mysql_old pada DATABASE_ENGINE namun hal ini tidak dianjurkan.
cd /usr/local/src/ wget http://www.magnet-id.com/download/mysql/mysql-python/MySQL-python-1.2.2.tar.gz tar xzvf MySQL-python-1.2.2.tar.gz cd MySQL-python-1.2.2 python setup.py build python setup.py install service mysqld restart
Edit settings.py pada project anda;
su username cd /home/username/procect/yourprojectname/ vi settings.py
Edit / modifikasi dan sesuaikan direktif berikut;
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. DATABASE_NAME = 'namadatabase' # Or path to database file if using sqlite3. DATABASE_USER = 'userdatabase' # Not used with sqlite3. DATABASE_PASSWORD = 'passworddatabase' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
python manage.py syncdb
Apabila perintah tersebut dijalankan pertama kali maka anda akan diminta untuk membuat superuser fasilitas administrasi django, isi keterangan yang diminta dan ikuti langkah demi langkah setup.