phpMyAdmin을 사용하여 원격 데이터베이스에 연결할 수 있습니까?


4

최근 에이 튜토리얼을 읽고 phpMyAdmin의 로컬 설치를 원격 데이터베이스에 연결하기 위해 쉽게 재구성하는 방법을 설명합니다. 기능이 지원되는 것 같지만 기본적으로 활성화되어 있지 않습니다. 튜토리얼을 따랐지만 원격 호스트에 연결하려고하면 유효성 검사가 실패합니다.

누군가 MySQL 로그인이 형식을 취하는 관련 질문에 대한 의견에서 나에게 설명했습니다 username@IPAddress. username@remotemachineIPphpMyAdmin이 보내는 동안 원격 데이터베이스는 예상 username@mylocalIP합니다.

그가 옳다면 그것은 내 문제 일 수 있습니다. 기사가 언급하지 않았기 때문에 이것은 혼란 스럽습니다.


  1. phpMyAdmin으로 원격 서버 (Amazon EC2에서 호스팅)에 실제로 연결할 수 있습니까?

  2. 이 연결 시도에서 실제 문제가 될 수 있습니까?

  3. 그렇다면 어떻게 해결할 수 있습니까?


서버 측에서 원격 연결을 할 수있는 기능도 활성화해야하므로 유효성 검사에 실패합니다.
Ramhound

@Ramhound 포트를 열었습니다. MySQL에서 의미합니까?

MySQL에 대한 원격 연결을 허용하기 위해 포트를 열면됩니다.
Ramhound

@Ramhound 그래서 찾았습니다. 구성 파일 편집이 포함됩니다.

답변:


1

phpMyAdmin은 원격 컴퓨터의 호스트, 사용자 및 암호를 설정하여 원격 데이터베이스에 연결할 수 있습니다. 호스트에서 MySQL 포트가 열려있는 한 여기에서 실행중인 MySQL은 네트워크 연결을 허용하도록 구성되어 있으며 사용자에게는 원격으로 연결할 수있는 권한이 있습니다.

phpMyAdmin을 실행하는 머신이나 (MySQL 서버가 아닌) 다른 머신에서 커맨드 라인 클라이언트를 실행하여 연결이 가능한지 테스트하십시오 :

$ mysql -h<ip> -u<user> -p<password> <database>

ip가 MySQL 서버 IP 인 경우 database는 데이터베이스의 이름이고 user 및 password는 MySQL에서 사용자의 자격 증명입니다. 성공하면 mysql 클라이언트 프롬프트가 표시됩니다. 또는 오류에 대한 적절한 설명.

최신 정보

MySQL 서버는 일반적으로 로컬 소켓 만 수신하도록 구성됩니다. 기본적으로 ti 3306 TCP 포트를 바인딩하지 않습니다. 올바르게 구성하려면 서버의 구성 파일 (보통 /etc/my.cnf)을 편집해야합니다.

[mysqld]
bind-address            = 10.0.0.5

이 예에서 IP를 서버의 IP 주소로 바꿔야합니다. "skip-networking"옵션이 활성화되어 있지 않은지 확인해야합니다. MySQL이 구성된 IP를 바인딩하지 못하기 때문입니다.

재부팅 후 MySQL이 서버 쉘에서이 명령으로 수신 대기 중인지 확인할 수 있습니다.

# netstat -nap | grep mysqld
tcp        0      0 10.0.0.5:3306                0.0.0.0:*                   LISTEN      3547/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     13554  3547/mysqld         /var/lib/mysql/mysql.sock

여기에 첫 번째 출력과 같은 줄이 표시되어야합니다. 3306 번호는 기본 MySQL 포트이며 서버를 보호하는 방화벽이있는 경우 들어오는 TCP 연결을 위해 포트를 열어야합니다.

그런 다음 MySQL에 연결할 수 있어야합니다. 그러나 권한이 올바르게 설정되지 않으면 로그인에 문제가있을 수 있습니다. MySQL 사용자는 user @ host 형식의 사용자 이름과 호스트를 가지므로, my_user @ localhost 사용자를 작성하고 localhost 와 다른 항목으로 로그인하려고하면 액세스가 거부됩니다. 클라이언트가 IP 주소가 10.0.0.33 인 시스템에서 실행 중이고 데이터베이스에 액세스 할 수있는 권한을 부여하려고한다고 가정하십시오. 사용자는 my_user@10.0.0.33 이거나 my_user @ % 는 모든 컴퓨터에서 연결하는 무제한 사용자 인 두 번째 사용자 여야합니다 . 미리 클라이언트의 IP를 알고 있다면 피하는 것이 좋습니다.


연결을 허용하도록 서버 측 mysql을 구성하는 영역에서 조금 더 자세히 설명해 주시겠습니까? 나는 이것을 알아 냈지만 그 비트를 설명하지 않으면 당신의 대답은 완전하지 않습니다. 다른 사람들이 언젠가는 유용하다고 생각합니다.

0

mysql 사용자가 원격 컴퓨터에서 로그인하도록 허용해야합니다. 이를 위해 mysql 서버에서 다음 명령을 실행해야합니다. * GRANT ALL PRIVILEGES ON . '비밀번호'로 식별 된 'USERNAME'@ '%'까지 *

또한 구성 파일을 편집하여 mysql 서버에서 IP 바인딩을 비활성화해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.