Installation et utilisation de PHPMyAdmin pour le développement Web

Ce que vous allez créer

PHPMyAdmin (PMA) est un excellent client de base de données Web gratuit et à source ouverte qui permet d’interagir plus facilement avec MySQL et les bases de données d’applications. Je décrirai comment l'installer, le sécuriser et quelques scénarios courants permettant de vous assister dans l'administration de la base de données. Voici une démonstration en ligne de PMA à explorer.

En plus de proposer une interface graphique pour les opérations de base de données, j'apprécie également de pouvoir exécuter des opérations SQL en ligne de commande via mon navigateur sans avoir à vous connecter au serveur via SSH. Par exemple, certaines connexions WiFi et hotspots mobiles terminent régulièrement des sessions SSH persistantes, rendant les tâches de base de données problématiques..

Installation de PHPMyAdmin

Débuter avec PMA est assez simple sous Linux. Je vais décrire comment procéder avec Ubuntu 14.x à Digital Ocean. Connectez-vous à votre serveur via SSH.

apt-get install phpmyadmin

Vous pouvez utiliser les paramètres par défaut lors de l'installation ou les personnaliser à votre guise.

Une fois que vous limitez l'accès MySQL à localhost uniquement (ce que vous devriez faire), il n'y a plus de ports distants vers MySQL pour qu'un pirate puisse y accéder. Ils peuvent essayer de s'introduire via SSH ou de lancer des attaques par injection SQL contre vos applications, mais ils ne peuvent pas attaquer directement la base de données. Une fois que vous installez PMA, tout le monde peut lancer des attaques Web contre elle afin de prendre le contrôle de votre base de données..

Je recommande quelques précautions lors de la configuration de PMA.

1. Utilisez des mots de passe très forts pour tous vos comptes MySQL, en particulier le compte root. par exemple. 25 caractères pour le mot de passe root.

2. Utilisez différents comptes et privilèges MySQL pour chaque application / site s'exécutant sur un seul serveur. De cette façon, si un mot de passe est compromis, seule la base de données d'un site est compromise..

3. Modifiez l'URL par défaut utilisée par PMA. De cette façon, les gens ne peuvent pas visiter http://yourblog.com/phpmyadmin. Bien que cette sécurité par obscurité ne soit pas une technique très efficace, elle ajoute une certaine protection.

Ajouter un alias à la apache.conf fichier:

nano /etc/phpmyadmin/apache.conf
Alias ​​/ myobscuredpma / usr / share / phpmyadmin

Recharger apache:

service apache2 reload

Ensuite, pour accéder à PMA, visitez http://votre blog.fr/monobscuredpma

Si vous devez modifier votre mot de passe PHPMyAdmin, vous pouvez modifier le config-db.php ici:

nano /etc/phpmyadmin/config-db.php

4. Configurer l'authentification Web pour le site PMA. Pour cela, vous devrez entrer un mot de passe supplémentaire pour accéder à PMA, en plus de votre mot de passe de base de données, comme ceci:

Pour configurer les restrictions d’utilisateur Apache, procédez comme suit:

Installer htpasswd dans le cadre d'apache2-utils:

apt-get install apache2-utils

Créez un répertoire pour stocker vos mots de passe:

mkdir / etc / htpasswd

Ajouter htaccess support pour PMA: 

nano /etc/phpmyadmin/apache.conf 

Ajouter AllowOverride All au dessous de 

 Options FollowSymLinks DirectoryIndex index.php AllowOverride All

Configurez votre authentification d'utilisateur pour PMA:

nano /usr/share/phpmyadmin/.htaccess

AuthType Basic AuthName "Connexion requise pour l'accès" AuthUserFile /etc/htpasswd/.htpasswd Requiert un utilisateur valide.

Définir votre mot de passe:

htpasswd -c /etc/htpasswd/.htpasswd nom d'utilisateur

Et redémarrez Apache:

service apache2 redémarrer

Accédez à votre site PMA et vous serez invité à saisir votre nom d'utilisateur et votre mot de passe, comme indiqué ci-dessus..

Utilisation de PHPMyAdmin lors du développement Web

1. Création et suppression de bases de données

Je trouve que PMA est particulièrement utile pendant les phases de développement et de test, où je souhaite éventuellement réinitialiser la base de données ou sauvegarder les opérations à plusieurs reprises..

Sans PMA, je me connecterais à mon serveur via SSH. Connectez-vous à MySQL, puis exécutez:

créer une base de données myapp; accorde tous les privilèges sur myapp_database. * TO "votre-nom-mysql" @ "localhost" identifié par "votre-mot-de-passe-mysql"; privilèges de chasse;

Avec PMA, vous pouvez exécuter n'importe quelle requête de ligne de commande avec l'interface visuelle. Cliquez sur l'onglet SQL et collez les instructions de la base de données MySQL ci-dessus. Puis cliquez sur Go pour créer la base de données.

Ou, vous pouvez utiliser l'interface visuelle directement:

Vous pouvez également ajouter des utilisateurs et définir des privilèges de cette manière. Cliquez sur l'onglet privilèges:

Cliquez sur Ajouter un utilisateur et définissez les privilèges de la base de données que vous souhaitez:

Pour votre compte de base de données d'application typique, vous devrez cocher les cases dans les carrés de données et de structure..

Pour supprimer une base de données, visitez le menu Bases de données. Cliquez sur la base de données que vous souhaitez supprimer, puis cliquez sur Déposer:

2. Sauvegarde de votre base de données

C'est une très bonne idée de sauvegarder votre base de données d'application avant d'effectuer des opérations étendues sur la base de données ou les mises à niveau de code. En cas de problème, vous pourrez restaurer votre site à partir de la sauvegarde..

À l'aide de l'interface Web PMA, cliquez sur votre base de données, cliquez sur l'onglet Exporter et sélectionnez Personnaliser..


Activez l’instruction "Ajouter une table d’affichage / une procédure / une fonction / un événement":

Lorsque vous cliquez sur Go, PMA télécharge une sauvegarde de l’ensemble de votre base de données. Si vos paramètres de délai d'expiration Apache PHP ne sont pas correctement configurés, certains téléchargements de fichiers longs peuvent expirer et échouer. Vous pouvez ajuster ceci dans PHP.ini comme je le décris sur mon site.

3. Test des requêtes

PMA est fantastique pour tester vos requêtes SQL pendant le développement. Lorsque j'ai créé Geogram (voir également mon prochain tutoriel MapApp sur Tuts +), je devais apprendre et tester un certain nombre de requêtes de géolocalisation complexes pour les fichiers de formes de voisinage, par exemple. trouver les quartiers les plus proches de mon adresse. PMA a rendu cela beaucoup plus facile.

Sélectionnez votre base de données, cliquez sur Requête. Collez ou éditez vos requêtes complexes et testez-les directement à partir de PMA:

Une fois que mes requêtes fonctionnaient, je pouvais écrire du code de programmation ActiveRecord plus facilement. Juste à titre d'exemple:

$ criteres = new CDbCriteria; $ critères-> ensemble = vrai; $ critères-> avoir = "distance < 100"; $criteria->order = "distance ASC"; $ critères-> with = array ('place_geometry' => array ('select' => 'place_id, center,'. new CDbExpression ('(3959 * acos (cos (radians ('. $ lat. ') (radians (X (centre))) * * cos (radians (Y (centre))) - radians ('. $ lon.')) + sin (radians ('. $ lat.')) * sin (radians (X ( centre))))) en distance '))); $ dataProvider = new CActiveDataProvider (Place :: model () -> active () -> includesMember ($ id), array ('critères' => $ critères, 'pagination' => array ('pageSize' => 10,) ,));

4. Réparation des entrées de base de données

Si vous êtes un développeur, vous avez probablement eu un bogue dans une application corrompant votre base de données. N'est-ce pas?

Par exemple, certaines de mes applications de gestion de messagerie risquent parfois de recevoir des messages inhabituels. ces bugs sont difficiles à trouver dans les tests réguliers. Dans ce cas, il m'a été utile de modifier la base de données directement avec PMA pour décoller mes tâches et relancer le site. Dans certains cas, le simple fait de parcourir facilement les tables peut vous aider à diagnostiquer ce qui ne fonctionne pas..

Dans PMA, ouvrez la base de données et sélectionnez votre table. Double-cliquez sur une colonne pour la modifier directement sur place. Faites le changement dont vous avez besoin et appuyez sur Entrée:

5. Réinitialisation de la base de données pour les migrations

Si vous utilisez un framework (comme Yii), vous utilisez peut-être des migrations de bases de données programmatiques. Les migrations de bases de données facilitent l'itération du développement des fonctionnalités et la mise à niveau de vos applications. Cependant, les tester peut casser des choses dans votre base de données locale.

Le plus souvent, je rencontre des erreurs de migration et je ne peux pas migrer vers le haut ou vers le bas à cause d'index, de clés étrangères ou de tables non ignorés. Dans ce cas, je peux utiliser PMA pour supprimer une table et supprimer des fichiers d'index indésirables..

Dans PMA, sélectionnez votre base de données, cliquez sur l'onglet SQL et entrez le code SQL permettant de supprimer votre clé étrangère ou votre index. Voici quelques exemples:

J'espère que vous avez trouvé cela utile. S'il vous plaît poster des commentaires, des corrections ou des idées supplémentaires ci-dessous. Vous pouvez parcourir mes autres tutoriels Tuts + sur ma page d’auteur ou me suivre sur Twitter @reifman.