명령 행에서 다음 조회를 발행 할 수 있습니다.
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name LIKE "%dir"'
출력 (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 |
+---------------------------+----------------------------+
출력 (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/ |
+---------------------------+-----------------------------------------------------------+
또는 데이터 디렉토리 만 사용하려면 다음을 사용하십시오.
mysql -uUSER -p -e 'SHOW VARIABLES WHERE Variable_Name = "datadir"'
이러한 명령은 Windows에서도 작동 하지만 작은 따옴표와 큰 따옴표를 바꿔야합니다 .
Btw, which mysql
당신이 말한대로 Linux에서 실행할 때 Linux에 설치 디렉토리가 없습니다 . /usr/bin
Linux에 바이너리 경로 만 표시되지만 mysql 설치는 여러 폴더를 사용하여 파일을 저장하는 것을 볼 수 있습니다.
datadir의 값이 출력으로 필요하고 열 헤더가없는 값만 필요하지만 GNU 환경이없는 경우 (awk | grep | sed ...) 다음 명령 행을 사용하십시오.
mysql -s -N -uUSER -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'
이 명령은 mysql의 내부 information_schema
데이터베이스 에서만 값을 선택 하고 테이블 형식 출력 및 열 헤더를 비활성화합니다.
Linux에서 출력 :
/var/lib/mysql