Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo prepararse para la actualización de MySQL 5.7

marzo 4, 2020

 

Introducción

un marco web gratuito y de código abierto escrito en Python, Django permite la escalabilidad, la reutilización y el rápido desarrollo.

En este tutorial, aprenderá cómo configurar la base inicial para un sitio web blog con conexiones a una base de datos MySQL. Esto implicará la creación de la estructura del esqueleto de la aplicación web blog a través de django-admin, la creación de la base de datos MySQL y luego conectar la aplicación web a la base de datos.

Requisitos previos

Este tutorial es el segundo tutorial de la serie de desarrollo de Django. Para seguir este tutorial, usted debe completar la siguiente:

  • instalar el software necesario para utilizar Django en un servidor de Ubuntu 16.04. Si no ha configurado un servidor con privilegios sudo o no ha instalado Django sin embargo, se puede seguir el primer tutorial de esta serie, “Cómo instalar Django y configurar un entorno de desarrollo en Ubuntu 16.04.”
  • instalar MySQL antes de proseguir con este tutorial. Si usted no tiene ya instalado, puede seguir el paso 2 de “Cómo instalar la última versión de MySQL en Ubuntu 16.04”, que incluye los comandos para conseguir instalado MySQL.

con los requisitos previos instalados y nuestro entorno de desarrollo de Django establecieron, podemos pasar a la creación de nuestra aplicación.

Paso 1 – Crear el pedido inicial del proyecto de Django Esqueleto

para sentar las bases de nuestra aplicación, necesitamos generar el proyecto esqueleto usando el comando django-admin. Este proyecto generado será la base de nuestra aplicación de blog.

Lo primero que tenemos que hacer es navegar al directorio principal, lo que podemos hacer con el siguiente comando:

cd ~

  • cd ~

A continuación, podemos enumerar los contenidos de nuestra directorio actual:

ls

  • ls

Si has empezado desde cero con el inicio de esta serie, se dará cuenta de que hay un solo directorio:

Outputdjango-apps

este contiene el proyecto esqueleto que hemos generado para verificar que todo se ha instalado correctamente. Como

que era sólo una prueba, que no necesitará este directorio. En su lugar, vamos a hacer un nuevo directorio para nuestra aplicación de blog. Llamar al directorio de algo significativo para la aplicación que está construyendo. A modo de ejemplo, que llamaremos my_blog_app nuestro.

mkdir my_blog_app

  • mkdir my_blog_app

Ahora, navegue hasta el directorio recién creado:

cd my_blog_app

  • cd my_blog_app

A continuación, crear y activar su entorno virtual de Python.

python3 -m venv env
. env/bin/activate

  • python3 -m Venv env
  • . env / bin / active

Ahora instalar Django:

pip install django

  • pip instalar Django

Mientras que en el directorio my_blog_app, vamos a generar un proyecto mediante la ejecución del siguiente comando:

django-admin startproject blog

  • django-admin startproject el blog

Compruebe que funcionó, vaya hasta el blog / directorio:

cd blog

  • cd blog en

el blog / directorio debe haber sido creado en el directorio actual, ~ / my_blog_app /, después de ejecutar el comando anterior django-admin.

Run ls para verificar que los artículos necesarios fueron creados. Debe haber un directorio de blogs y un archivo manage.py:

Outputblog manage.py

Ahora que ha creado un directorio que contiene el proyecto de puesta en marcha inicial de la aplicación de blog, podemos continuar con el siguiente paso.

Paso 2 – Editar configuración

Desde que hemos generado el proyecto esqueleto, que ahora tiene un archivo settings.py.

Para que nuestro blog para tener la hora correcta asociada a nuestra área, vamos a editar el archivo settings.py de modo que va a utilizar su zona horaria actual. Se puede utilizar esta lista de zonas horarias como referencia. Para nuestro ejemplo, vamos a utilizar el tiempo América / New_York.

Ahora navegar al directorio donde se encuentra el archivo settings.py:

cd ~/my_blog_app/blog/blog/

  • cd ~ / my_blog_app / blog / blog /

Luego, utilizando nano o un editor de texto de su elección, abrir y editar la configuración. py archivo:

nano settings.py

  • nano settings.py

Estamos editando el campo TIME_ZONE, por lo que navegar a la sección inferior del archivo que tiene este aspecto:

...
# Internationalization
# https://docs.djangoproject.com/en/2.0opics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True
...

vamos a modificar la línea TIME_ZONE por lo que es establece en su zona horaria actual. Vamos a utilizar la zona horaria de Nueva York en este ejemplo: de

...
# Internationalization
# https://docs.djangoproject.com/en/2.0opics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'America/New_York'

USE_I18N = True
...

Let mantener el archivo abierto, porque tenemos que añadir una ruta estática para nuestra archivos . Los archivos que nos sirvieran de su aplicación web Django se denominan archivos estática . Esto podría incluir los archivos necesarios para representar la página web completa, incluyendo Javascript, CSS, y las imágenes.

Ir al final del archivo y añadir settings.py STATIC_ROOT como se muestra a continuación:

...
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.0/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

Ahora que hemos añadido la zona horaria y la ruta de los archivos estáticos, el próximo hay que añadir nuestra IP a la lista de hosts permitidos . Vaya a la línea del archivo settings.py donde dice allowed_hosts, va a ser hacia la parte superior del archivo settings.py.

...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['your server IP address']

# Application definition
...

Añadir la dirección IP del servidor entre los corchetes y comillas simples.

Una vez que está satisfecho con los cambios que ha realizado, guarde el archivo pulsando Ctrl + X y luego y para cambios confirmar.

Grande, que ha editado correctamente el archivo settings.py por lo que la zona horaria correcta se ha configurado. También ha añadido el camino para sus archivos estáticos, y establecer su dirección IP para ser un ALLOWED_HOST para su aplicación.

En este punto se puede pasar a la configuración de nuestra conexión de base de datos.

Paso 3 – Instalar la base de datos MySQL Connector

Para utilizar MySQL con nuestro proyecto, vamos a necesitar una biblioteca conector de la base de datos de Python 3 compatible con Django. Por lo tanto, vamos a instalar el conector de la base de datos, mysqlclient, que es una versión bifurcada de MySQLdb.

De acuerdo con la documentación mysqlclient, “MySQLdb es una interfaz compatible con hilos al servidor de base de datos MySQL popular que ofrece la API de base de datos de Python.” La principal diferencia es que mysqlclient tiene el beneficio adicional de la inclusión de Python 3 de apoyo.

Lo primero que tendremos que hacer es instalar python3-dev. Puede instalar python3-dev ejecutando el siguiente comando:

sudo apt-get install python3-dev

  • sudo apt-get install python3-dev

Una vez instalado python3-dev, podemos instalar las cabeceras necesarias Python y MySQL de desarrollo y bibliotecas:

sudo apt-get install python3-dev libmysqlclient-dev

  • sudo apt-get install python3-dev libmysqlclient-dev

Cuando vea el siguiente resultado:

OutputAfter this operation, 11.9 MB of additional disk space will be used.
Do you want to continue? [Y
]

Enter y luego pulsa ENTER para continuar.

A continuación, vamos a utilizar PIP3 para instalar la biblioteca de mysqlclient PyPi. Desde nuestra versión de los puntos de pepita de PIP3, podemos simplemente usar PIP.

pip install mysqlclient

  • PIP instalar mysqlclient

verá una salida similar a esta, asegurándose de que esté instalando correctamente:

successfully installed mysqlclientCollecting mysqlclient
Downloading mysqlclient-1.3.12.tar.gz (82kB)
100% |████████████████████████████████| 92kB 6.7MB/s
Building wheels for collected packages: mysqlclient
Running setup.py bdist_wheel for mysqlclient ... done
Stored in directory: /root/.cache/pip/wheels/32/50/86/c7be3383279812efb2378c7b393567569a8ab1307c75d40c5a
Successfully built mysqlclient
Installing collected packages: mysqlclient
Successfully installed mysqlclient-1.3.12

Ahora, instalar el servidor MySQL, con el siguiente comando:

sudo apt-get install mysql-server

  • sudo apt-get install mysql- servidor MySQL servidor

ahora hemos instalado con éxito y el cliente MySQL utilizando la biblioteca conector mysqlclient PyPi.

Paso 4 – Crear la base de datos

Ahora que el esqueleto de su aplicación Django ha sido establecido y mysqlclient y mysql-servidor se han instalado, tendremos que tener que configurar su base de Django para la compatibilidad de MySQL.

Compruebe que el servicio se está ejecutando MySQL:

systemctl status mysql.service

  • systemctl estado mysql.service

verá una salida que se parece a esto:

mysql.service active● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2017-12-29 11:59:33 UTC; 1min 44s ago
Main PID: 26525 (mysqld)
CGroup: /system.slice/mysql.service
└─26525 /usr/sbin/mysqld

Dec 29 11:59:32 ubuntu-512mb-nyc3-create-app-and-mysql systemd[1]: Starting MySQL Community Server...
Dec 29 11:59:33 ubuntu-512mb-nyc3-create-app-and-mysql systemd[1]: Started MySQL Community Server.

Si en lugar de ver una salida similar a la siguiente:

mysql.service inactive● mysqld.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)

Puede ejecutar sudo systemctl arrancar el MySQL para obtener mysql.service comenzó de nuevo.

ya se puede iniciar sesión con sus credenciales de MySQL utilizando el siguiente comando. Donde -u es la bandera para declarar su nombre de usuario y -p es la bandera que dice a MySQL que este usuario requiere una contraseña:

mysql -u db_user -p

  • mysql -u -p usuario_bd

continuación podrá ver los resultados que se solicita esta usuario_bd de contraseña:

OutputEnter password:

Una vez que introduzca la contraseña correcta, verá el siguiente resultado:

OutputWelcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 6
Server version: 5.7.20-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

podemos tener MySQL mostrarnos las bases de datos actuales con el siguiente comando:

SHOW DATABASES;

  • DEMOSTRACIÓN DE bASES DE DATOS;

Usted verá una salida similar a la siguiente, suponiendo que no se ha creado ninguna base de datos aún:

Output+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)

Nota: Si se produce un error al intentar conectarse, compruebe que la contraseña es correcta y que usted han instalado correctamente MySQL. De lo contrario revisar el tutorial sobre cómo instalar y configurar MySQL.

Por defecto, tendrá 4 bases de datos ya creada, INFORMATION_SCHEMA, MySQL, performance_schema y sys. No necesitaremos tocar estos, ya que contienen información importante para el propio servidor MySQL.

Ahora, que haya accedido a su servidor MySQL, vamos a crear la base de datos inicial que contendrá los datos para nuestro blog.

Para crear una base de datos en MySQL ejecute el siguiente comando, utilizando un nombre significativo para su base de datos:

CREATE DATABASE blog_data;

  • CREAR blog_data base de datos;

Tras la exitosa creación de la base de datos, verá el siguiente resultado:

OutputQuery OK, 1 row affected (0.00 sec)

Nota: Si usted ve el resultado siguiente:

database creation failedERROR 1007 (HY000): Can't create database blog_data; database exists

Entonces, como los estados de error, una base de datos del nombre blog_data ya existe.

Y si ves el siguiente error de MySQL, significa que hay un error de sintaxis MySQL. Compruebe que ha introducido el comando exactamente como se muestra en este tutorial.

database creation failedERROR 1064 (42000): You have an error in your SQL syntax;

A continuación, compruebe que la base de datos aparece ahora en la lista de bases de datos disponibles:

SHOW DATABASES;

  • DEMOSTRACIÓN DE BASES DE DATOS;

Debería ver que la base de datos blog_data es una de las bases de datos incluidas en la salida:

output+--------------------+
| Database |
+--------------------+
| information_schema |
| blog_data |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)

Acaba de crear una base de datos MySQL para su blog.

Siempre que desea servidor de salida de MySQL, presione CTRL + D.

Paso 5 – Añadir la base de datos MySQL de conexión a su aplicación

Por último, vamos a añadir las credenciales de conexión de base de datos para su aplicación Django.

Nota: Es importante recordar que los ajustes de conexión, de acuerdo con la documentación de Django, se utilizan en el siguiente orden: – OPCIONES – NOMBRE, usuario, contraseña, host, puerto – ficheros de opciones MySQL. maquillaje de

dejar que los cambios necesarios para conectar su blog en Django aplicación a MySQL.

Vaya al archivo settings.py y sustituir las líneas actuales bases de datos con la siguiente. Vamos a configurar su diccionario de base de datos para que sepa utilizar MySQL como su base de datos y por lo archivo para leer las credenciales de conexión de base de datos:

...
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/etc/mysql/my.cnf',
},
}
}
...

A continuación, vamos a editar el archivo de configuración para que tenga sus credenciales de MySQL. Utilice nano como sudo para editar el archivo y añadir la siguiente información:

sudo nano /etc/mysql/my.cnf

  • sudo nano /etc/mysql/my.cnf

...
[client]
database = db_name
user = db_user
password = db_password
default-character-set = utf8

Donde nombre de base de datos en nuestro caso es blog_data, su nombre de usuario para el servidor MySQL es el que ha creado, y la contraseña es la contraseña del servidor MySQL que has creado. Asimismo, se dará cuenta de que UTF-8 se establece como la codificación por defecto, esta es una forma común de datos de codificación Unicode en MySQL.

Una vez que el archivo se ha editado, tenemos que reiniciar MySQL para que los cambios surtan efecto.

systemctl daemon-reload
systemctl restart mysql

  • systemctl daemon-recarga
  • systemctl reiniciar MySQL

Tenga en cuenta que reiniciar MySQL tarda unos pocos segundos, así que por favor sea paciente.

Paso 6 – Prueba de conexión a MySQL Aplicación

Necesitamos verificar que las configuraciones en Django detectan su servidor MySQL correctamente. Podemos hacer esto simplemente ejecutando el servidor. Si falla, significa que la conexión no está funcionando correctamente. De lo contrario, la conexión es válida.

Vamos a tener que navegar hasta el directorio siguiente:

cd ~/my_blog_app/blog/

  • cd ~ / my_blog_app / blog /

A partir de ahí, podemos ejecutar el siguiente comando:

python manage.py runserver your-server-ip:8000

  • python manage.py runserver su-servidor- ip: 8000

ahora verá una salida similar a la siguiente:

OutputPerforming system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

January 4, 2018 - 15:45:39
Django version 2.0.1, using settings 'blog.settings'
Starting development server at http://your-server-ip:8000/
Quit the server with CONTROL-C.

Nota: verá que usted tiene las migraciones no aplicados en la salida. Sin embargo, no se preocupe, esto se tratará en los próximos tutoriales. Esto no afecta a la configuración inicial de nuestra aplicación. Por favor continua.

Siga las instrucciones de la salida y siga el enlace sugerido, http: // tu-server-ip: 8000 /, para ver su aplicación web y para verificar que esté funcionando correctamente.

Si la página aparece similar a la pantalla de arriba, su aplicación Django está funcionando como se esperaba!

Cuando haya terminado con las pruebas de su aplicación, puede presionar CTRL + C para detener el comando de ejecución del servidor. Esto lo regresará a la de su entorno de programación.

Cuando esté listo para salir de su entorno Python, puede ejecutar el comando de desactivación:

deactivate

  • Desactivar

desactivar su entorno de programación se pondrá de nuevo a la terminal de comandos del sistema.

Conclusión

En este tutorial, se creó la fundación inicial de tu blog Django. Ha instalado, configurado y conectado al backend MySQL Django. También ha añadido alguna información importante archivo settings.py de su aplicación como TIME_ZONE y allowed_hosts.

Ahora que estos ajustes básicos y configuraciones están completos, ahora puede empezar a desarrollar y aplicar modelos de migraciones en su aplicación Django.