VirtualBox를 통해 MySQL 서버에 액세스


20

클라이언트 (호스트 컴퓨터에 있음)에 응답하기 위해 MySQL 서버 (VM 내부에 있음)를 가져 오려고합니다. 모든 메소드는 동일하게 리턴됩니다.

Host '10.0.2.2' is not allowed to connect to this MySQL server

올바른 포트 전달을 보장했습니다. 나는 또한 my.cnf다음과 같은 선을 확보했다 .

skip-external-locking
bind-address = 0.0.0.0

이것은 나에게 효과가 없었다. 나는 또한 다음과 같이 조금 연주하려고 노력했다.

bind-address = 10.0.2.2

그러나 이것은 나에게도 효과가 없었습니다. 서버는 시작할 수 없었습니다.

내가 잘못한 아이디어가 있습니까?

최신 정보. 이미 작성된 MySQL 사용자의 권한을 어떻게 변경합니까?root@% 에서와 같이 권한을 확인하지 않았습니다 .

해결되었습니다.


MySQL에서 어떤 사용자 계정을 만들었습니까?
Shane Madden

내 계정은 root:root입니다. 로그인에 문제가 있는지 의심합니다. 그렇지 않으면 오류 메시지에 백합 Access denied for root@10.0.2.2이나 무언가가 표시됩니다.
Defance

@ShaneMadden 죄송합니다. 당신은 꽤 옳았습니다. 일에 대한 특권이 있었다 root@%. 내 잘못이야
Defance

답변:


37

대부분의 기본 설치에서 루트 계정의 로컬 호스트 전용입니다. 다른 시스템에서 로그인 할 수 있습니까? 로부터 MySQL을 참조 설명서 :

사용자 테이블에 클라이언트 호스트와 일치하는 호스트 값을 가진 행이 없음을 의미합니다.

그래서, 더 없다 %또는 10.0.2.2Host전혀 열입니다. 현재 구성을 확인하십시오.

select user,host from mysql.user where user='root';

현재와 ​​동일한 비밀번호로 새 루트 항목을 작성하려고합니다.

create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;

1
네. 고맙습니다. 나는 또한 당신이 여기에 언급 한 것처럼 잠시 전에 그것을 해결했습니다. 그게 내 문제 였어
Defance

1
Shane의 대답은 정확하고 단일 명령으로 실행할 수 있으며 Ansible 스크립트 / Vagrant와 같은 것을 사용하여 자동화하는 경우 유용합니다.mysql -e "create user 'root'@'10.0.2.2' identified by 'yourpassword'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
KayakinKoder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.