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


186

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

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

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

답변:


298

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

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 -uroot -p -e를 사용했습니다. 'Variables Where Where Variable_Name = "datadir"| grep "datadir"| 리눅스에서 실제 datadir 경로를 찾기위한 awk "{print $ 2}" '. Windows에서 해당 경로 만 어떻게 찾을 수 있습니까?
Prabhu

1
@Prabhu 당신은 mysql명령으로 그냥 할 수 있습니다 . 다른 도구는 필요하지 않습니다. 내 업데이트 확인
hek2mgl

이 명령은 Linux에서 ok를 실행합니다. Windows XP에서는 제대로 실행되지 않습니다. 첫 번째 명령은 오류를 발생시킵니다-Variable_Name = 'dirname'근처의 SQL 구문에 오류가 있습니다. 두 번째 명령은 오류-알 수없는 데이터베이스 정보를 제공합니다
Prabhu

1
Windows에서이 작업을 수행하려면 이중 따옴표 나 작은 따옴표를 반전하십시오.mysql -uUSER -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"
Leonardo Herrera

1
감사합니다! "SHOW VARIABLES WHERE Variable_Name ="datadir ""실행 중; 내 phpmyadmin 데이터베이스에서 dabase 디렉토리의 위치를 ​​찾는 데 도움이되었습니다.
Aurgho Bhattacharjee


5

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}'

1

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

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

mysql ?

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

mysql -uroot -ppassword mysql ?

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


1

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

mysqld --verbose --help

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

mysqld --verbose --help | grep ^datadir

출력 예 :

datadir                                     /var/lib/mysql/

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

0

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


0

CLI 인터페이스에서 bellow 명령 사용

[root@localhost~]# mysqladmin variables -p<password> | grep datadir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.