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
mysql
commande. Aucun autre outil n'est requis. Vérifier ma mise à jourmysql -uUSER -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Vous pouvez essayer ceci-
mysql> select @@datadir;
PS- Cela fonctionne sur toutes les plates-formes.
la source
si vous voulez trouver des données dans Linux ou Windows, vous pouvez faire la commande suivante
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
si vous êtes intéressé par la recherche de datadir, vous pouvez utiliser la commande grep & awk
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print $2}'
la source
Sortie sous Windows:
vous pouvez simplement utiliser cette commande, c'est très simple!
1. pas de mot de passe MySQL:
2. avoir le mot de passe MySQL:
la source
Vous pouvez voir la liste complète des options du serveur MySQL en exécutant
mysqld --verbose --help
Par exemple, pour connaître le chemin du répertoire de données sous Linux, vous pouvez exécuter:
mysqld --verbose --help | grep ^datadir
Exemple de sortie:
la source
public function variables($variable="") { return empty($variable) ? mysql_query("SHOW VARIABLES") : mysql_query("SELECT @@$variable"); } /*get datadir*/ $res = variables("datadir"); /*or get all variables*/ $res = variables();
la source
Vérifiez si le
Data
répertoire est au format"C:\ProgramData\MySQL\MySQL Server 5.7\Data"
. C'est là que c'est sur mon ordinateur. Quelqu'un pourrait trouver cela utile.la source
Utilisez la commande ci-dessous à partir de l'interface CLI
[root@localhost~]# mysqladmin variables -p<password> | grep datadir
la source