Est-ce que quelqu'un connaît un bon outil à utiliser avec le shell pour interroger la base de données et obtenir des résultats intelligibles ?
Sur la ligne de commande, à partir de SSH, je souhaite interroger la base de données à l'aide de mysql
, mais les résultats sont plutôt illisibles car il n'y a pas de formatage pour l'écran du terminal.
Si je lance ce qui suit, il est difficile de donner un sens aux résultats.
use mydb;
select * from db3_settings;
Je sais que je pourrais utiliser phpMyAdmin ou MySQLCC mais je recherche une solution en ligne de commande.
Vous pouvez obtenir une sortie au format vertical avec \G
.
Voici la sortie standard:
mysql> select * from tblSettings;
+-----------+----------------+---------------------+
| settingid | settingname | settingvalue |
+-----------+----------------+---------------------+
| 1 | maxttl | 30 |
| 2 | traceroutepath | /usr/bin/traceroute |
| 3 | alertemail | [email protected] |
+-----------+----------------+---------------------+
3 rows in set (0.00 sec)
Et voici à quoi ressemble la sortie avec \G
:
mysql> select * from tblSettings \G;
*************************** 1. row ***************************
settingid: 1
settingname: maxttl
settingvalue: 30
*************************** 2. row ***************************
settingid: 2
settingname: traceroutepath
settingvalue: /usr/bin/traceroute
*************************** 3. row ***************************
settingid: 3
settingname: alertemail
settingvalue: [email protected]
3 rows in set (0.00 sec)
Vous pouvez rendre les résultats plus lisibles de plusieurs manières.
Utiliser limit pour ne voir que quelques lignes:
SELECT * FROM table LIMIT 10;
Ne renvoyer que certaines colonnes:
SELECT a,b,c FROM table;
Terminez vos requêtes avec \G
pour envoyer l'instruction actuelle au serveur à exécuter et afficher le résultat au format vertical:
SELECT * FROM table \G
Pour les systèmes autres que Windows, vous pouvez utiliser less
pour rendre la sortie formatée ou plus lisible.
mysql > pager less -SFX;
mysql > select * from databasename.table;
il dirige la sortie sql vers less en donnant une sortie tabulaire qui peut être défilée horizontalement et verticalement avec les touches du curseur. quitter en appuyant sur 'q'
si vous ne voulez pas, réinitialisez en utilisant
mysql> nopager
En ligne de commande, vous pouvez afficher les résultats des enregistrements renvoyés sous forme d'enregistrements individuels formatés (par opposition à une table longue) en utilisant \G
à la fin de votre requête, comme suit:
select * from <tablename> \G;
mysql
's ego
De la commande mysql
's help
:
ego (\ G) Envoie la commande au serveur mysql, affiche le résultat verticalement.
Donc, en ajoutant un \G
à votre select
, vous pouvez obtenir une sortie verticale très propre:
mysql> SELECT * FROM db3_settings \G;
Vous pouvez demander à MySQL d'utiliser le paginateur less
avec son option -S
qui coupe les lignes larges et vous donne une sortie que vous pouvez faire défiler à l'aide des touches fléchées:
mysql> pager less -S
Ainsi, la prochaine fois que vous exécuterez une commande avec une sortie large, MySQL vous permettra de parcourir la sortie avec le pagin less
:
mysql> SELECT * FROM db3_settings;
Si vous en avez terminé avec le pageur et que vous souhaitez revenir à la sortie normale sur stdout
, utilisez ceci:
mysql> nopager