창의 명령줄에서 mysql 데이터 디렉터리를 찾는 방법
Linux 에서는 다음 명령어로 mysql 설치 디렉토리를 찾을 수 있습니다.which mysql
하지만 창문에서는 아무것도 찾을 수 없었다.나는 노력했다.echo %path%
그리고 mysql bin에 대한 경로와 함께 많은 경로가 생성되었습니다.
배치 프로그램에서 사용하기 위해 윈도우의 명령줄에서 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 에서는, 인스톨 디렉토리를 얻을 수 없습니다.바이너리 경로만 얻을 수 있습니다./usr/bin
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
database 및 테이블 형식의 출력 및 컬럼헤더를 디세블로 합니다.
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}'
MySQL 서버 옵션의 전체 목록을 보려면
mysqld --verbose --help
예를 들어 리눅스의 데이터 디렉터리에 대한 경로를 확인하려면 다음을 실행할 수 있습니다.
mysqld --verbose --help | grep ^datadir
출력 예:
datadir /var/lib/mysql/
CLI 인터페이스에서 bellow 명령어 사용
[root@localhost~]# mysqladmin variables -p<password> | grep datadir
Windows에서의 출력:
이 명령어를 사용하면 됩니다. 매우 쉽습니다!
1. MySQL 비밀번호 없음:
mysql ?
2. MySQL 비밀번호가 있다:
mysql -uroot -ppassword 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"
여기가 내 컴퓨터에 있는 곳이야.이게 도움이 될 수도 있어요.
언급URL : https://stackoverflow.com/questions/17968287/how-to-find-the-mysql-data-directory-from-command-line-in-windows
'programing' 카테고리의 다른 글
이클립스의 안드로이드 앱:그래픽 레이아웃에 표시되지 않는 텍스트 편집 (0) | 2022.10.29 |
---|---|
MariaDB가 오류 [42000][1064]로 단순 테이블 작성을 거부하는 이유는 무엇입니까? (0) | 2022.10.29 |
PHP에서 ereg 식을 preg로 변환하려면 어떻게 해야 하나요? (0) | 2022.10.29 |
부울값 스위치/반전 (0) | 2022.10.29 |
SQL 문(Python, MySQL)에서 일부 매개 변수가 사용되지 않았습니다. (0) | 2022.10.29 |