Bagaimana untuk menemukan direktori data mysql dari command line pada windows

Di linux saya bisa menemukan direktori instalasi mysql dengan perintah yang mysql. Tapi aku tidak bisa menemukan apapun di windows. Aku mencoba echo %path% dan itu mengakibatkan banyak jalan selain jalan ke mysql bin.

Aku ingin menemukan direktori data mysql dari command line pada windows untuk digunakan dalam batch program. Saya juga ingin menemukan data mysql direktori dari linux command line. Apakah itu mungkin? atau bagaimana kita bisa melakukan itu?

Dalam kasus saya, direktori data mysql pada folder instalasi yaitu ..MYSQL\mysql server 5\data mungkin diinstal pada setiap drive namun. Aku ingin mendapatkannya kembali dari baris perintah.

Larutan

Anda dapat mengeluarkan query berikut dari command line:

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

Output (pada 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 menginginkan data dir gunakan:

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

Perintah ini bekerja pada Windows juga, tetapi anda perlu untuk membalikkan tanda kutip tunggal dan ganda.

Btw, ketika melaksanakan yang mysql di Linux seperti yang anda bilang, anda'll tidak mendapatkan *instalasi* direktori pada Linux. Anda'll hanya mendapatkan jalur biner, yang merupakan/usr/bin` pada Linux, tetapi anda melihat instalasi mysql adalah menggunakan beberapa folder untuk menyimpan file.


Jika anda membutuhkan nilai datadir sebagai output, dan hanya itu, tanpa kolom header dll, tapi anda don't memiliki GNU lingkungan (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 mysql's internal information_schema database dan menonaktifkan tabel output dan kolom header.

Output pada Linux:

/var/lib/mysql
Komentar (10)

Anda dapat mencoba ini-

mysql> select @@datadir;

PS - Ia bekerja pada setiap platform.

Komentar (6)

jika anda ingin menemukan datadir di linux atau windows yang dapat anda lakukan perintah berikut

mysql -pengguna -p -e 'MENUNJUKKAN VARIABEL MANA Variable_Name = "datadir",'

jika anda tertarik untuk menemukan datadir anda dapat menggunakan grep & perintah awk

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

Output pada Windows: anda hanya dapat menggunakan perintah ini,sangat mudah!

1. tidak ada password dari MySQL:

mysql ?

2. memiliki password dari MySQL:

mysql -uroot -ppassword mysql ?

Komentar (0)

Anda dapat melihat daftar lengkap dari server MySQL pilihan dengan menjalankan

mysqld --verbose --help

Misalnya, untuk menemukan jalan ke direktori data pada Linux, anda dapat menjalankan:

mysqld --verbose --help | grep ^datadir

Contoh output:

datadir                                     /var/lib/mysql/
Komentar (0)

Gunakan di bawah perintah dari antarmuka CLI

[root@localhost~]# mysqladmin variables -p | grep datadir
Komentar (0)

Periksa apakah direktori Data di "C:\ProgramData\MySQL\MySQL Server 5.7\Data". Ini adalah di mana itu di komputer saya. Seseorang mungkin menemukan ini berguna.

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