it-swarm.com.de

So finden Sie das MySQL-Datenverzeichnis über die Befehlszeile in Windows

In Linux konnte ich das mysql-Installationsverzeichnis mit dem Befehl which mysql finden. Aber ich konnte keine in Fenstern finden. Ich habe echo %path% ausprobiert und es ergeben sich viele Pfade zusammen mit dem Pfad zu MySQL bin. 

Ich wollte das MySQL-Datenverzeichnis von der Befehlszeile in Windows zur Verwendung im Stapelverarbeitungsprogramm finden. Ich möchte auch das mysql-Datenverzeichnis von der Linux-Befehlszeile aus finden. Ist es möglich? oder wie können wir das machen?

In meinem Fall befindet sich das Verzeichnis mysql data im Installationsordner, d. H. ..MYSQL\mysql server 5\data. Es kann jedoch auf jedem Laufwerk installiert werden. Ich möchte, dass es von der Befehlszeile zurückgegeben wird.

167
Prabhu

Sie können die folgende Abfrage über die Befehlszeile ausgeben:

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'

Ausgabe (unter 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                       |
+---------------------------+----------------------------+

Ausgabe (auf 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/         |
+---------------------------+-----------------------------------------------------------+

Oder wenn Sie nur das Datenverzeichnis verwenden möchten:

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'

Diese Befehle funktionieren auch unter Windows, Sie müssen jedoch die Anführungszeichen in doppelte Anführungszeichen setzen.

Übrigens, wenn Sie which mysql in Linux ausführen, wie Sie gesagt haben, wird das Verzeichnis installation unter Linux nicht angezeigt. Sie erhalten nur den binären Pfad (/usr/bin unter Linux). Die Installation von mysql verwendet jedoch mehrere Ordner zum Speichern von Dateien.


Wenn Sie den Wert von datadir als Ausgabe benötigen und nur diesen, ohne Spaltenüberschriften usw., aber keine GNU - Umgebung (awk | grep | sed ...) verwenden, verwenden Sie die folgende Befehlszeile:

mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'

Der Befehl wählt den Wert nur aus der internen information_schema-Datenbank von mysql aus und deaktiviert die Tabellenausgabe und die Spaltenüberschriften.

Ausgabe unter Linux:

/var/lib/mysql
275
hek2mgl

Sie können dies versuchen- 

mysql> select @@datadir;

PS: Es funktioniert auf jeder Plattform.

140
As_913

wenn Sie in Linux oder Windows nach Datadir suchen, können Sie den folgenden Befehl ausführen 

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' 

wenn Sie daran interessiert sind, Datadir zu finden, können Sie den Befehl grep & awk verwenden 

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print $2}'
5
Amrit Shrestha

Sie können die vollständige Liste der MySQL-Serveroptionen anzeigen, indem Sie ausführen

mysqld --verbose --help

Um beispielsweise den Pfad zum Verzeichnis data unter Linux herauszufinden, können Sie Folgendes ausführen:

mysqld --verbose --help | grep ^datadir

Beispielausgabe:

datadir                                     /var/lib/mysql/
1
Eugene Yarmash

Ausgabe unter Windows:
Sie können diesen Befehl einfach verwenden, es ist sehr einfach! 

1. kein Passwort von MySQL: 

mysql ?

2. Passwort von MySQL haben:

mysql -uroot -ppassword mysql ?

 enter image description here  enter image description here

1
xgqfrms
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();

Prüfen Sie, ob das Verzeichnis Data in "C:\ProgramData\MySQL\MySQL Server 5.7\Data" liegt. Hier ist es auf meinem Computer. Jemand könnte das hilfreich finden.

0
bluegrounds

Verwenden Sie den folgenden Befehl von der CLI-Schnittstelle

[[email protected]~]# mysqladmin variables -p<password> | grep datadir
0
Rakib