Windows'ta komut satırından mysql veri dizini nasıl bulunur

Linux'ta mysql kurulum dizinini which mysql komutu ile bulabildim. Ancak windows'ta bulamadım. Ben echo %path% komutunu denedim ve mysql bin yolu ile birlikte birçok yol çıktı.

Toplu iş programında kullanmak için windows'ta komut satırından mysql veri dizinini bulmak istedim. Ayrıca linux komut satırından mysql veri dizinini bulmak istiyorum. Bu mümkün mü veya bunu nasıl yapabiliriz?

Benim durumumda, mysql veri dizini kurulum klasöründedir, yani ..MYSQL\mysql server 5\data Ancak herhangi bir sürücüye kurulabilir. Komut satırından döndürmek istiyorum.

Çözüm

Komut satırından aşağıdaki sorguyu düzenleyebilirsiniz:

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

Çıktı (Linux üzerinde):

+---------------------------+----------------------------+
| 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                       |
+---------------------------+----------------------------+

Çıktı (macOS Sierra'da):

+---------------------------+-----------------------------------------------------------+
| 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/         |
+---------------------------+-----------------------------------------------------------+

Ya da yalnızca veri dir kullanımını istiyorsanız:

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

Bu komutlar Windows'ta da çalışır, ancak tek ve çift tırnak işaretlerini ters çevirmeniz gerekir.

Bu arada, söylediğiniz gibi Linux'ta which mysql' komutunu çalıştırdığınızda, Linux'ta *kurulum* dizinini alamazsınız. Sadece Linux'ta/usr/bin` olan ikili yolu alırsınız, ancak mysql kurulumunun dosyaları depolamak için birden fazla klasör kullandığını görürsünüz.


Eğer çıktı olarak datadir değerine ihtiyacınız varsa ve sütun başlıkları vs. olmadan sadece buna ihtiyacınız varsa, ancak bir GNU ortamınız (awk|grep|sed ...) yoksa, aşağıdaki komut satırını kullanın:

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

Komut, değeri yalnızca mysql'in dahili `information_schema' veritabanından seçecek ve tablo çıktısını ve sütun başlıklarını devre dışı bırakacaktır.

Linux üzerinde çıktı:

/var/lib/mysql
Yorumlar (10)

Bunu deneyebilirsiniz-

mysql> select @@datadir;

Not- Her platformda çalışır.

Yorumlar (6)

linux veya windows'ta datadir'i bulmak istiyorsanız aşağıdaki komutu uygulayabilirsiniz

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

eğer datadir'i bulmak istiyorsanız grep & awk komutunu kullanabilirsiniz

mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"' | grep 'datadir' | awk '{print $2}'
Yorumlar (0)