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 dir 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 nháy đơn và dấu nháy kép .
Btw, khi thực thi which mysql
trong Linux như bạn đã nói, bạn sẽ không nhận được cài đặt thư mục trên Linux. Bạn sẽ chỉ nhận được đường dẫn nhị phân, là /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ó vậy, 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
nội bộ của mysql cơ sở dữ liệu và tắt đầu ra dạng bảng và tiêu đề cột.
Đầu ra trên Linux:
/var/lib/mysql