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 mysql
di Linux seperti yang Anda katakan, Anda tidak akan mendapatkan direktori instalasi di Linux. Anda hanya akan mendapatkan path biner, yang ada /usr/bin
di 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_schema
database internal mysql dan menonaktifkan output kolom dan header kolom.
Output di Linux:
/var/lib/mysql