Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment trouver le répertoire de données mysql à partir de la ligne de commande dans Windows

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 (sur 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 voulez utiliser uniquement le répertoire de données :

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 .

Au fait, lors de l'exécution de which mysql sous Linux comme vous l'avez dit, vous n'obtiendrez pas l'installation répertoire 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 en sortie, et uniquement 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électionnera la valeur uniquement à partir du information_schema interne de mysql base de données et désactive la sortie tabulaire et les en-têtes de colonne.

Sortie sur Linux :

/var/lib/mysql