[mysql] Windows의 명령 줄에서 mysql 데이터 디렉토리를 찾는 방법

리눅스에서 나는 명령으로 mysql 설치 디렉토리를 찾을 수 있었다 which mysql. 그러나 나는 창문에서 아무것도 찾을 수 없었습니다. 나는 시도 echo %path%하고 mysql bin에 대한 경로와 함께 많은 경로를 얻었습니다.

배치 프로그램에서 사용하기 위해 Windows의 명령 줄에서 mysql 데이터 디렉토리를 찾고 싶었습니다. 또한 Linux 명령 줄에서 mysql 데이터 디렉토리를 찾고 싶습니다. 가능합니까? 아니면 어떻게 할 수 있습니까?

필자의 경우 mysql 데이터 디렉토리는 설치 폴더에 있습니다. 즉 ..MYSQL\mysql server 5\data, 모든 드라이브에 설치할 수 있습니다. 명령 줄에서 반환하고 싶습니다.



답변

명령 행에서 다음 조회를 발행 할 수 있습니다.

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/binLinux에 바이너리 경로 만 표시되지만 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


답변

당신은 이것을 시도 할 수 있습니다-

mysql> select @@datadir;

PS- 모든 플랫폼에서 작동합니다.


답변

Linux 또는 Windows에서 datadir을 찾으려면 다음 명령을 수행 할 수 있습니다

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

datadir을 찾으려면 grep & awk 명령을 사용할 수 있습니다

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


답변

Windows에서 출력 :
이 명령을 사용하면 매우 쉽습니다.

1. MySQL의 비밀번호가 없습니다 :

mysql ?

2. MySQL 비밀번호가 있습니다.

mysql -uroot -ppassword mysql ?

여기에 이미지 설명을 입력하십시오
여기에 이미지 설명을 입력하십시오


답변

다음을 실행하여 전체 MySQL 서버 옵션 목록을 볼 수 있습니다

mysqld --verbose --help

예를 들어, Linux 에서 데이터 디렉토리 의 경로를 찾으려면 다음을 실행할 수 있습니다.

mysqld --verbose --help | grep ^datadir

출력 예 :

datadir                                     /var/lib/mysql/


답변

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


답변

Data디렉토리가에 있는지 확인하십시오 "C:\ProgramData\MySQL\MySQL Server 5.7\Data". 여기가 내 컴퓨터에 있습니다. 누군가 도움이 될 수 있습니다.