Bạn có thể đưa ra truy vấn sau từ dòng lệnh:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
Đầu ra (trên 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 |
+---------------------------+----------------------------+
Đầu ra (trên 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/ |
+---------------------------+-----------------------------------------------------------+
Hoặc nếu bạn chỉ muốn sử dụng thư mục dữ liệu:
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
Các lệnh này cũng hoạt động trên Windows, nhưng bạn cần đảo ngược dấu ngoặc đơn và dấu ngoặc kép .
Btw, khi thực thi which mysql
Linux như bạn đã nói, bạn sẽ không nhận được thư mục cài đặt trên Linux. Bạn sẽ chỉ nhận được đường dẫn nhị phân /usr/bin
trên Linux, nhưng bạn thấy cài đặt mysql đang sử dụng nhiều thư mục để lưu trữ tệp.
Nếu bạn cần giá trị của datadir làm đầu ra và chỉ có điều đó, không có tiêu đề cột, v.v., nhưng bạn không có môi trường GNU (awk | grep | sed ...) thì hãy sử dụng dòng lệnh sau:
mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'
Lệnh sẽ chỉ chọn giá trị từ information_schema
cơ sở dữ liệu nội bộ của mysql và vô hiệu hóa đầu ra dạng bảng và các tiêu đề cột.
Đầu ra trên Linux:
/var/lib/mysql