2011-02-06 21 views
8

Me gustaría comenzar a usar Django con MYSQL, en lugar de sqlite todo el tiempo, sin embargo, mi única experiencia con MSQL es a través de XAMPP, manipulando bases de datos a través de phpmyadmin. Realmente me gustaría mantener esta interacción de GUI con mysql y no tener que hacer todo a través de la línea de comandos.django, phpmyadmin y mysql?

¿Puede iniciar y administrar una base de datos MYSQL utilizando xampp/phpmyadmin, y luego usar django para el lado del desarrollo web solo con el servidor de desarrollo Django?

¿O siempre debe iniciar nuevas bases de datos a través de la línea de comandos, y si es así cómo se hace, teniendo en cuenta que solo uso mysql a través de xampp/phpmyadmin?

Sé cómo vincular y administrar una base de datos a través de django, simplemente no sé cómo iniciar un mysql a través de él, y realmente no quiero tener que perder el guión mysql que viene con xampp/phpmyadmin. Toda ayuda es muy apreciada.

Respuesta

10

Definitivamente puede administrar Mysql a través de la interfaz XAMPP. Intenta configurar DB_HOST en settings.py a "localhost". Si no funciona, prueba "127.0.0.1". Esto suele ser causado por el módulo python-mysql que espera que el socket mysql Unix esté en otro lugar. En realidad, no estoy seguro si el servidor mysql usa un socket unix en Windows. De todos modos, uno de los dos debería funcionar :) Puede usar las credenciales que usa para iniciar sesión con phpmyAdmin también para Django. Muchos consideran que es malo usar root para tareas que no son de administración (y estoy de acuerdo), pero para los principiantes y en su máquina de desarrollo no es un gran problema. phpMyAdmin debe funcionar de inmediato con sus bases de datos administradas por django.

Mi base de datos de bloque settings.py para MySQL es como la siguiente:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'DBNAME',      # Or path to database file if using sqlite3. 
     'USER': 'USER',      # Not used with sqlite3. 
     'PASSWORD': 'PASSWORD',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

Esto es para Django 1.2 y anteriores. Reemplace DBNAME, USER y PASSWORD con los valores respectivos y pruebe '127.0.0.1' como HOST si tiene problemas. Obviamente, necesitaría ejecutar 'manage.py syncdb' como lo hizo con sqlite antes de poder usarlo.

+0

muchas gracias – Stu

+0

De nada. –

+0

Quiero hacer lo mismo, pero tengo problemas ... - ¿Instaló mysqlclient o MySQL-python? Este es el error que ya tengo. Ahora, después de la configuración de la base de datos, si ejecuto el servidor, me enfrento a eso, aunque tengo php myadmin en ejecución. https://imgur.com/9UeQzfT Ahora, traté de hacer 'manage.py syncdb' también.Devuelve el mismo problema- https://imgur.com/WpuKv1X FYI, estoy usando mac y xampp. ¿Alguna suerte para mí @kevinRead? – tisuchi

1

Puede administrar fácilmente sus bases de datos con phpMyAdmin. Todo lo que Django necesita es permiso y acceso a la información para su base de datos. Una vez que estén configurados (otorgando permisos en phpMyAdmin y agregando la información de acceso en settings.py de Django), usted emitiría un manage.py syncdb por ejemplo y habrá terminado.

+0

muchas gracias – Stu

3

Recomiendo encarecidamente comprobar postgresql! Viene con un navegador de base de datos similar a Sqlserver-Management-System que se ejecuta en su escritorio, en lugar de un front-end basado en web. Ahora no tiene que preocuparse por configurar PHP junto a Django. Es probable que Postgresql sea más difícil de instalar que MySql en XAMPP, pero creo que puede obtener mucho de ello.

Postgresql también es mucho mejor (IMO) que MySQL, y es la base de datos recomendada para usar con Django de acuerdo con mucha gente cercana a Django.

Dicho esto, actualmente uso Oracle, por lo que probablemente no deberías escucharme. :)

+0

En segundo lugar, mirar MySQl-alternatives suele ser una buena idea. MySQL está muy extendido y es bastante rápido, pero eso no significa que sea bueno en todos los aspectos. Explorar otros DBMS proporciona más información sobre los pros y los contras de MySQL, y sabrá cuándo elegir qué DBMS. –

+0

Gracias, por alguna razón, no pensé en usar postgresql con django, aunque lo he usado antes con geodjango para datos espaciales. Supongo que estoy demasiado cómodo con phpmyadmin porque lo uso con mucha frecuencia, pero esta es una buena solución y, como es recomendable, intento usarlo durante un tiempo. aclamaciones. – Stu

Cuestiones relacionadas