Django Start: 1_Environment Construction Django Start: 2_Create Project Django start: intégration 3_Apache Django start: intégration 4_MySQL
La dernière fois, j'étais prêt à publier un projet créé avec Django en collaboration avec Apache. Nous continuerons à construire l'environnement sans écrire le programme réel. Cette fois, modifiez les paramètres de la base de données.
Django utilise SQLite par défaut. Alors qu'il a l'avantage de pouvoir démarrer un projet très facilement (aucun paramétrage requis) Lorsqu'il s'agit de migrer vers MySQL plus tard, cela prendra plus de temps et d'efforts. Faisons d'abord les choses douloureuses.
Ce à quoi j'étais accro lors de la migration de la base de données Django de sqlite3 vers MySQL
D'autant que je prévois de faire un travail lié à l'analyse de texte, j'ai lu quelque part que SQLite n'est pas adapté pour gérer une grande quantité de données, j'ai donc décidé de changer le paramètre. De plus, j'étais habitué à MySQL.
Je n'ai pas trouvé un bon article sur la différence entre SQLite et MySQL, donc j'apprécierais que vous puissiez présenter un bon article ou un bon livre. C'est léger, mais voici la différence. Liste des systèmes de gestion de base de données utilisables avec les serveurs de location
yum install mariadb mariadb-server mariadb-devel
Ouvrez le fichier de configuration mysql. Lors de la gestion du japonais, spécifiez le code de caractère.
vi /etc/my.cnf
Ajoutez ce qui suit sous [mysqld]
character-set-server = utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
De plus, tout le post-scriptum ci-dessous
[client]
default-character-set = utf8
Redémarons pour que les paramètres prennent effet.
systemctl start mariadb
systemctl enable mariadb
Je vais devoir répondre à diverses questions.
mysql_secure_installation
Enter current password for root (enter for none): #Le paramètre par défaut est vide. Appuyez simplement sur Entrée
Set root password? [Y/n] y
New password: #Tout mot de passe
Re-enter new password:: #Confirmation mot de passe
Toutes les questions suivantes sont OK avec "y".
Exécutez mysql avec un mot de passe.
$ mysql -u root -p
Enter password: #Entrez le mot de passe que vous avez défini précédemment
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 789
Server version: 5.5.47-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Créons maintenant une base de données pour Django.
MariaDB [(none)]> create database xxx;
MariaDB [(none)]> exit;
Ceci termine les paramétrages côté DB. Après cela, laissez Django reconnaître cette base de données.
Ouvrez le fichier de paramètres.
vi settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xxx', #Nom de base de données créé précédemment
'USER': 'root', #Nom d'utilisateur mysql (la racine est NG pour la sécurité, changez en conséquence)
'PASSWORD': 'pass', #mot de passe mysql
'HOST': '', #IP hôte
'PORT': '', #Port
}
}
...
TIME_ZONE = 'Asia/Tokyo'
HOST et PORT peuvent être vides si vous utilisez le port par défaut dans la base de données de l'hôte local.
pip install PyMySQL
Demande d'utiliser le module ajouté à manage.py.
vi manage.py
import pymysql
pymysql.install_as_MySQLdb()
Créons et exécutons une migration.
python manage.py makemigrations
python manage.py migrate
Connectez-vous à MySQL avec Python3 + Django
Recommended Posts