Vous pouvez émettre la requête suivante à partir de la ligne de commande:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
Sortie (sous Linux):
+
| Variable_name | Value |
+
| basedir | /usr |
| character_sets_dir | /usr/share/mysql/charsets/ |
| datadir | /var/lib/mysql/ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| lc_messages_dir | /usr/share/mysql/ |
| plugin_dir | /usr/lib/mysql/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+
Sortie (sur macOS Sierra):
+
| Variable_name | Value |
+
| basedir | /usr/local/mysql-5.7.17-macos10.12-x86_64/ |
| character_sets_dir | /usr/local/mysql-5.7.17-macos10.12-x86_64/share/charsets/ |
| datadir | /usr/local/mysql/data/ |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_tmpdir | |
| lc_messages_dir | /usr/local/mysql-5.7.17-macos10.12-x86_64/share/ |
| plugin_dir | /usr/local/mysql/lib/plugin/ |
| slave_load_tmpdir | /var/folders/zz/zyxvpxvq6csfxvn_n000009800002_/T/ |
| tmpdir | /var/folders/zz/zyxvpxvq6csfxvn_n000009800002_/T/ |
+
Ou si vous ne voulez que le répertoire de données, utilisez:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
Ces commandes fonctionnent également sous Windows, mais vous devez inverser les guillemets simples et doubles .
Btw, lors de l'exécution which mysql
sous Linux comme vous l'avez dit, vous n'obtiendrez pas le répertoire d' installation sous Linux. Vous n'obtiendrez que le chemin binaire, qui est /usr/bin
sous Linux, mais vous voyez que l'installation de mysql utilise plusieurs dossiers pour stocker les fichiers.
Si vous avez besoin de la valeur de datadir comme sortie, et seulement de cela, sans en-têtes de colonne, etc., mais que vous n'avez pas d'environnement GNU (awk | grep | sed ...), utilisez la ligne de commande suivante:
mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'
La commande sélectionne la valeur uniquement dans la information_schema
base de données interne de mysql et désactive la sortie tabulaire et les en-têtes de colonne.
Sortie sous Linux:
/var/lib/mysql