Cara menemukan direktori data mysql dari baris perintah di windows


186

Di linux saya bisa menemukan direktori instalasi mysql dengan perintah which mysql. Tetapi saya tidak dapat menemukannya di windows. Saya mencoba echo %path%dan menghasilkan banyak path bersama path ke mysql bin.

Saya ingin mencari direktori data mysql dari baris perintah di windows untuk digunakan dalam program batch. Saya juga ingin mencari direktori data mysql dari baris perintah linux. Apa itu mungkin? atau bagaimana kita bisa melakukan itu?

Dalam kasus saya, direktori data mysql ada di folder instalasi yaitu ..MYSQL\mysql server 5\dataNamun mungkin diinstal pada drive apa pun. Saya ingin mengembalikannya dari baris perintah.

Jawaban:


298

Anda dapat mengeluarkan kueri berikut dari baris perintah:

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

Output (di 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                       |
+---------------------------+----------------------------+

Output (pada 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/         |
+---------------------------+-----------------------------------------------------------+

Atau jika Anda hanya ingin menggunakan data dir:

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

Perintah-perintah ini juga berfungsi pada Windows, tetapi Anda harus membalikkan tanda kutip tunggal dan ganda .

Btw, ketika mengeksekusi which mysqldi Linux seperti yang Anda katakan, Anda tidak akan mendapatkan direktori instalasi di Linux. Anda hanya akan mendapatkan path biner, yang ada /usr/bindi Linux, tetapi Anda melihat instalasi mysql menggunakan banyak folder untuk menyimpan file.


Jika Anda memerlukan nilai datadir sebagai output, dan hanya itu, tanpa header kolom dll, tetapi Anda tidak memiliki lingkungan GNU (awk | grep | sed ...) kemudian gunakan baris perintah berikut:

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

Perintah akan memilih nilai hanya dari information_schemadatabase internal mysql dan menonaktifkan output kolom dan header kolom.

Output di Linux:

/var/lib/mysql

Saya menggunakan mysql -uroot -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir" | grep "datadir" | awk "{print $ 2}" 'untuk menemukan jalur datadir aktual di linux. Bagaimana hanya menemukan jalur itu di windows?
Prabhu

1
@ Prabhu Anda dapat melakukannya hanya dengan mysqlperintah. Tidak diperlukan alat lain. Periksa pembaruan saya
hek2mgl

Perintah dijalankan ok di linux. Itu tidak berjalan dengan baik di windows xp. perintah pertama memberi kesalahan - Anda memiliki kesalahan dalam sintaks sql Anda di dekat tempat Variable_Name = 'dirname'. Perintah kedua memberikan kesalahan - database tidak diketahui information_schema
Prabhu

1
Untuk membuat ini bekerja di bawah Windows, cukup membalikkan tanda kutip ganda / tunggal:mysql -uUSER -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Leonardo Herrera

1
Terima kasih untuk ini! Menjalankan "SHOW VARIABLES WHERE Variable_Name =" datadir ""; pada database phpmyadmin saya membantu saya menemukan lokasi direktori dabase.
Aurgho Bhattacharjee


5

jika Anda ingin menemukan datadir di linux atau windows Anda dapat melakukan perintah berikut

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

jika Anda tertarik untuk menemukan datadir, Anda dapat menggunakan perintah grep & awk

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

1

Output pada Windows:
Anda bisa menggunakan perintah ini, sangat mudah!

1. tidak ada kata sandi MySQL:

mysql ?

2. memiliki kata sandi MySQL:

mysql -uroot -ppassword mysql ?

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini


1

Anda dapat melihat daftar lengkap opsi server MySQL dengan menjalankan

mysqld --verbose --help

Misalnya, untuk mengetahui jalur ke direktori data di Linux, Anda dapat menjalankan:

mysqld --verbose --help | grep ^datadir

Contoh output:

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

Periksa apakah Datadirektori tersebut ada "C:\ProgramData\MySQL\MySQL Server 5.7\Data". Di sinilah di komputer saya. Seseorang mungkin menganggap ini bermanfaat.


0

Gunakan perintah di bawah ini dari antarmuka CLI

[root@localhost~]# mysqladmin variables -p<password> | grep datadir
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.