Windows'ta komut satırından mysql veri dizinini bulma


186

Linux'ta mysql kurulum dizinini komutla bulabilirim which mysql. Ama pencerelerde hiç bulamadım. Denedim echo %path%ve mysql bin yolu ile birlikte birçok yol sonuçlandı.

Toplu programda kullanmak için Windows komut satırından mysql veri dizinini bulmak istedim. Ayrıca linux komut satırından mysql veri dizinini bulmak istiyorum. Mümkün mü? ya da bunu nasıl yapabiliriz?

Benim durumumda, mysql veri dizini kurulum klasöründe yani ..MYSQL\mysql server 5\dataherhangi bir sürücüye yüklenmiş olabilir. Komut satırından döndürülmesini istiyorum.

Yanıtlar:


298

Komut satırından aşağıdaki sorguyu verebilirsiniz:

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

Çıktı (Linux'ta):

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

Veya yalnızca data dir kullanmak istiyorsanız:

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

Bu komutlar Windows'ta da çalışır, ancak tek ve çift tırnakları tersine çevirmeniz gerekir .

Btw, which mysqlLinux'ta söylediğin gibi, Linux'ta kurulum dizinini alamayacaksın . Yalnızca /usr/binLinux'ta bulunan ikili yolu alırsınız , ancak mysql kurulumunun dosyaları depolamak için birden fazla klasör kullandığını görürsünüz.


Datadir değerinin çıktı olarak ve yalnızca sütun başlıkları vb olmadan 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_schemaveritabanından seçer ve tablo çıktısını ve sütun başlıklarını devre dışı bırakır.

Linux'ta Çıktı:

/var/lib/mysql

Ben mysql -uroot -p -e kullandım 'DEĞİŞKENLERİ GÖSTER NEREDE Variable_Name = "datadir" | grep "datadir" | Linux'ta gerçek datadir yolunu bulmak için awk "{print $ 2}" '. Pencerelerde sadece bu yolu nasıl bulabilirim?
Prabhu

1
@Prabhu Bunu sadece mysqlkomutla yapabilirsiniz. Başka alet gerekmez. Güncellememi kontrol et
hek2mgl

Komut Linux'ta ok çalıştırır. Windows XP'de iyi çalışmaz. ilk komut hata verir - sql sözdiziminde Variable_Name = 'dirname' yakınında hata var. İkinci komut hata verir - bilinmeyen veritabanı bilgileri_sema
Prabhu

1
Bu işlemi Windows altında yapmak için çift / tek tırnakları ters çevirin:mysql -uUSER -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Leonardo Herrera

1
Bunun için teşekkürler! "SHAR VARIABLES NEREDE GÖSTER çalıştırılıyor Variable_Name =" datadir ""; phpmyadmin veritabanımda dabase dizininin yerini bulmama yardımcı oldu.
Aurgho Bhattacharjee


5

linux veya pencerelerde datadir bulmak istiyorsanız aşağıdaki komutu yapabilirsiniz

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

datadir bulmak istiyorsanız grep & awk komutunu kullanabilirsiniz

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

1

Windows'ta Çıktı:
Sadece bu komutu kullanabilirsiniz, çok kolay!

1. MySQL şifresi yok:

mysql ?

2. MySQL şifresine sahip olmak:

mysql -uroot -ppassword mysql ?

resim açıklamasını buraya girin resim açıklamasını buraya girin


1

MySQL sunucu seçeneklerinin tam listesini çalıştırarak görebilirsiniz.

mysqld --verbose --help

Örneğin, Linux'ta veri dizininin yolunu bulmak için şunları çalıştırabilirsiniz:

mysqld --verbose --help | grep ^datadir

Örnek çıktı:

datadir                                     /var/lib/mysql/

0
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();

0

DataDizinin bulunup bulunmadığını kontrol edin "C:\ProgramData\MySQL\MySQL Server 5.7\Data". Burası benim bilgisayarımda. Birisi bunu faydalı bulabilir.


0

CLI arayüzünden feryat komutunu kullanma

[root@localhost~]# mysqladmin variables -p<password> | grep datadir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.