1. ホーム
  2. mysql

[解決済み】Windowsでコマンドラインからmysqlのデータディレクトリを検索する方法

2022-04-15 15:02:43

質問

linuxでは、コマンドでmysqlのインストールディレクトリを見つけることができました。 which mysql . しかし、私はWindowsで何も見つけることができませんでした。私は echo %path% と表示され、mysqlのbinへのパスと一緒に多くのパスが表示されました。

バッチプログラムで使用するために、Windowsのコマンドラインからmysqlのデータディレクトリを探したいと思いました。また、Linuxのコマンドラインからmysqlのデータディレクトリを見つけたいと思います。それは可能ですか、または私たちはそれを行うにはどうすればよいですか?

私の場合、mysqlのデータディレクトリは、インストールフォルダ、すなわち ..MYSQL\mysql server 5\data しかし、それはどのドライブにインストールされているかもしれません。私は、コマンドラインからそれを取得したい。

解決方法は?

コマンドラインから以下のクエリを発行することができます。

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

出力(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                       |
+---------------------------+----------------------------+

出力(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/         |
+---------------------------+-----------------------------------------------------------+

また、dirが使用するデータのみが欲しい場合。

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

これらのコマンドは、Windowsでも動作します。 ただし、シングルクォートとダブルクォートを反転させる必要があります。 .

を実行すると which mysql が表示されません。 インストール ディレクトリを作成します。バイナリのパスが表示されるだけです。 /usr/bin Linuxでは、mysqlのインストールは、ファイルを格納するために複数のフォルダを使用していることがわかります。


もし、datadir の値を出力として必要とし、カラムヘッダなどを含まずそれだけが必要で、かつ GNU 環境 (awk|grep|sed ...) がない場合は、次のコマンドラインを使ってください。

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

このコマンドは、mysqlの内部の information_schema データベースを使用し、表形式出力とカラムヘッダを無効化します。

Linuxでの出力。

/var/lib/mysql