SaltyCrane Blog — Notes on PythonJavascript and web development

How to set up Django with MySql on Ubuntu Hardy

Here are my notes on installing Django with MySql. Almost all of this was taken from Zeth's article: Baby Steps with Django - part 2 database setup.

Install Django and MySql

Note: during the installation of mysql-server, you will be prompted for a root password. Use this in the section below.

$ sudo apt-get install python-django
$ sudo apt-get install mysql-server
$ sudo apt-get install python-mysqldb
Set up a MySql database and user

Note, use the password you entered when installing MySql

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.51a-3ubuntu5.1 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)

mysql> GRANT ALL ON django_db.* TO 'djangouser'@'localhost' IDENTIFIED BY 'mypassword';
Query OK, 0 rows affected (0.03 sec)

mysql> quit
Create a Django Project
$ django-admin startproject mysite
Edit the Django database settings
Edit mysite/
DATABASE_ENGINE = 'mysql'           # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'django_db'             # Or path to database file if using sqlite3.
DATABASE_USER = 'djangouser'             # Not used with sqlite3.
DATABASE_PASSWORD = 'mypassword'         # 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.
Use Django to create the database tables
$ cd mysite
$ python syncdb
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'sofeng'):    
E-mail address:
Password (again): 
Superuser created successfully.
Installing index for auth.Message model
Installing index for auth.Permission model
Loading 'initial_data' fixtures...
No fixtures found.
Run the development server
$ python runserver
Validating models...
0 errors found.

Django version 0.96.1, using settings 'mysite.settings'
Development server is running at
Quit the server with CONTROL-C.
[30/Jul/2008 16:37:23] "GET / HTTP/1.1" 404 2053

Point your browser at and you should see the Django It worked! page.


#1 bush commented on :

is a very simple and easy article , very good !

#2 thanos commented on :

unique!!! 5 stars

#3 austiine commented on :

absolutely cool ........ wud u mind doing that again for postgresql

#4 ashish commented on :

Nice article, It saves my time :)

#5 prookxz commented on :

Nice! Have been looking through a couple of tutorials, this is by far the best one yet.

#6 abid commented on :

very nice man.. pls tell me how can i store the data in mysql from django

#7 Mc commented on :

Could you tell sth about how to do it on Cent OS system ? It drives me crazy...

#8 Will commented on :

WOW! this did more for me than pages of django docs. Thanks!

#9 Gaurav Bhagwat commented on :


#10 Sanjoy Ganguly commented on :

Really easy & step by step.

#11 Innocent Ndibatya commented on :

Very good article. I has saved my time. Thanks

#12 Krishn Singh commented on :

Useful article!!!

#13 Steven commented on :

excellent!!!!! (y) (y) (y)

#14 Siva commented on :

thank you soo much

#15 prasad reddy commented on :

really very good article and it is very helpful to beginers............

#16 ineptant commented on :

Simple and useful, many thanks :)