우분투 게스트에서 Windows 호스트에 설치된 MySQL에 액세스하는 방법은 무엇입니까?

우분투 게스트에서 Windows 호스트에 설치된 MySQL에 액세스하는 방법은 무엇입니까?

Windows 7 호스트 시스템에서 게스트로 Ubuntu를 실행하고 있습니다. 게스트를 실행하기 위해 VMware Workstation을 사용하고 있습니다.

호스트에 MySQL을 설치했습니다. 내 Ubuntu 게스트에서 이 MySQL 데이터베이스에 액세스하고 싶습니다. 기본적으로 저는 Ubuntu 게스트에서 Django를 사용하여 샘플 애플리케이션을 개발하려고 하는데 이를 위해서는 MySQL이 필요합니다. 인터넷 연결이 매우 느려서 Ubuntu용 MySQL을 다운로드할 수 없고 호스트 OS에 Python이 설치되어 있지 않습니다.

Ubuntu 게스트에서 MySQL 데이터베이스에 어떻게 연결할 수 있나요?

답변1

mysql.user 테이블을 살펴봐야 합니다.

일반적으로 이 쿼리를 실행하면 사용자 이름, 호스트 주소 및 MD5로 암호화된 비밀번호를 볼 수 있습니다.

SELECT user,host,password FROM mysql.user;

예제 #1: IP 주소가 '123.50.89.191'인 Ubuntu 서버에서 mysql에 연결하고 데이터베이스 'mydata'의 모든 것에 완전히 액세스하고 조작할 수 있는 'myclient'라는 사용자를 생성해 보겠습니다. 비밀번호는 '허가'입니다.

GRANT ALL PRIVILEGES on mydata.*
TO 'myclient'@'123.50.89.191'
IDENTIFIED BY 'permission';

예제 #2: IP 주소가 '123.50.89.191'인 Ubuntu 서버에서 mysql에 연결하고 'mydata' 데이터베이스의 모든 항목을 INSERT 및 SELECT만 수행할 수 있는 'myreadclient'라는 사용자를 생성해 보겠습니다. 비밀번호는 'readpermission'입니다.

GRANT INSERT,SELECT on mydata.*
TO 'myreadclient'@'123.50.89.191'
IDENTIFIED BY 'readpermission';

특정 권한을 가진 사용자를 생성하는 방법에 대한 자세한 내용은이 URL을 따라가세요.

시도 해봐 !!!

경고

일반 텍스트 비밀번호보다는 MD5 형식으로 비밀번호를 설정하는 것이 항상 좋습니다.

mysql> SET @X=PASSWORD('permission');
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @X;
+-------------------------------------------+
| @X                                        |
+-------------------------------------------+
| *1D6447E2F5B7AFD0E27D8E6CCA53099BE980803C |
+-------------------------------------------+
1 row in set (0.00 sec)

이제 첫 번째 예의 비밀번호를 다음과 같이 설정하세요.

GRANT ALL PRIVILEGES on mydata.*
TO 'myclient'@'123.50.89.191'
IDENTIFIED BY PASSWORD @X;

MD5 형식을 사용한 두 번째 예는 다음과 같습니다.

mysql> SET @X=PASSWORD('readpermission');
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT @X;
+-------------------------------------------+
| @X                                        |
+-------------------------------------------+
| *22DA1CEDDBA3B75FD193775AC69D9184105F0BE0 |
+-------------------------------------------+
1 row in set (0.00 sec)

GRANT INSERT,SELECT on mydata.*
TO 'myreadclient'@'123.50.89.191'
IDENTIFIED BY PASSWORD @X;

이렇게 하면 바이너리 로그나 mysql 클라이언트 세션을 기록하는 파일에 일반 텍스트 비밀번호가 기록되는 것을 방지할 수 있습니다.

관련 정보