로컬 phpMyAdmin 클라이언트로 원격 서버에 액세스하는 방법은 무엇입니까?


134

원격 서버가 있고 컴퓨터에 phpMyAdmin 클라이언트가 로컬로 설치되어 있다고 가정합니다. 이 서버에 어떻게 액세스하고 phpMyAdmin 클라이언트를 통해 관리 할 수 ​​있습니까? 가능합니까?


1
phpmyadmin도커 이미지를 로컬로 설치하고 원격 MySQL 서버에 연결할 수도 있습니다 . 자세한 내용은 여기 :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin
Xiao

답변:


175

/etc/phpmyadmin/config.inc.php하단 의 파일에 아래 줄을 추가하십시오 .

$i++;
$cfg['Servers'][$i]['host'] = 'HostName:port'; //provide hostname and port if other than default
$cfg['Servers'][$i]['user'] = 'userName';   //user name for your remote server
$cfg['Servers'][$i]['password'] = 'Password';  //password
$cfg['Servers'][$i]['auth_type'] = 'config';       // keep it as config

. “현재 서버 :”드롭 다운에“127.0.0.1”과 서버간에“$ cfg [ '서버'] [$ i] [ '호스트']”캠 스위치와 함께 제공되는 드롭 다운이 표시됩니다.

자세한 내용은 http://sforsuresh.in/access-remote-mysql-server-using-local-phpmyadmin/


16
$i++우리가 기본으로 데이터베이스 연결을 잃게하지 않습니다이 같은 중요한 포인트입니다 localhost.
Gaurav Ramanan

또한의 단계를 수행했습니다 그것을 작동하도록하면 phpMyAdmin에서 설정 후 게시물을.
Ahmed Akhtar

2
/etc/phpmyadmin/config.inc.php올바른 파일입니다
Xiao

위의 방법은 절대적으로 정확하지만 왜 원격 mySql에 내 IP 주소를 추가하거나 추가해야한다고 말하지 않았습니까? 그렇지 않으면 작동하지 않습니다. 친구도 이것을 참고하십시오
Jaydeep Goswami

Apple 시스템에서 작업하는 사람은 config.inc.php파일이 파일에 있습니다 Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.php.
Anirudha Mahale

23

다른 답변이 지적했듯이 phpMyAdmin의 로컬 인스턴스에서 원격 MySQL 서버에 액세스 할 수 있습니다. 그리고 이것이 작동 하려면 원격 서버의 MySQL 서버가 원격 연결을 수락 하고 MySQL이 수신하는 포트 번호에 대한 방화벽을 통한 트래픽을 허용하도록 구성해야합니다. SSH 터널링 과 관련된 약간 다른 솔루션을 선호합니다 .

다음 명령은 SSH 터널을 설정하여 로컬 시스템에서 포트 3307에 대한 모든 요청을 원격 시스템의 포트 3306으로 전달합니다.

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

프롬프트가 표시되면 원격 시스템에서 루트 사용자의 비밀번호를 입력해야합니다. 터널이 열립니다. 백그라운드에서이를 실행하려면 -f인수 를 추가하고 로컬 시스템과 원격 시스템간에 비밀번호없는 SSH 를 설정해야 합니다.

SSH 터널이 작동되면 /etc/phpmyadmin/config.inc.php파일 을 수정하여 원격 서버를 로컬 phpMyAdmin의 서버 목록에 추가 할 수 있습니다 . 파일 끝에 다음을 추가하십시오.

$cfg['Servers'][$i]['verbose']       = 'Remote Server 1';// Change this to whatever you like.
$cfg['Servers'][$i]['host']          = '127.0.0.1';
$cfg['Servers'][$i]['port']          = '3307';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysqli';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'cookie';
$i++;

추가 도움이 필요할 경우를 대비 하여 더 자세한 블로그 게시물을 작성했습니다 .


1
이것이 안전한 솔루션이라고 생각합니다. 원격 액세스를 위해 mySQL을 여는 것은 일반적으로 꼭 필요한 것은 아니지만 보안 관행이 좋지 않은 것으로 간주됩니다.
Omn

1
c.hill의 대답이 옳지 않습니다. 참고 : 바인드 주소는 mysql my.cnf 파일에서 루프백 주소로 설정해야합니다.

원격 호스트에서 루트 일 필요는 없습니다. 다리는 완벽하게 작동합니다. 감사합니다! 나는 구성에 대해 잘 모르겠지만 Suresh Kamrushi의 대답을 선호합니다. $++적어도 내 기본 phpmyadmin.conf의 경우 마지막 줄이어야합니다.
frnhr

방금 $ cfg [ 'Servers'] [$ i] [ 'auth_type'] = 'config';를 변경해야하는 경우가 발생했습니다. // $ cfg [ 'Servers'] [$ i] [ 'auth_type'] = 'cookie'; // 설정으로 유지하십시오. 팁 감사합니다!
Phil Lawlor

최고의 솔루션!
Ghasem Sadeghi

23

할 수 있지만 phpMyAdmin 구성을 변경해야합니다.이 게시물을 읽으십시오 : http://www.danielmois.com/article/Manage_remote_databases_from_localhost_with_phpMyAdmin

어떤 이유로 든 링크가 종료되면 다음 단계를 사용할 수 있습니다.

  • phpMyAdmin의 구성 파일 찾기 config.inc.php
  • $cfg['Servers'][$i]['host']변수를 찾아서 원격 서버의 IP 또는 호스트 이름으로 설정하십시오.
  • $cfg['Servers'][$i]['port']변수를 찾아서 원격 mysql 포트로 설정하십시오. 보통 이것은3306
  • $cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password']변수를 찾아서 원격 서버의 사용자 이름 및 비밀번호로 설정하십시오.

적절한 서버 구성이 없으면 연결이 로컬 연결보다 느릴 수 있습니다. 예를 들어 서버가 호스트 이름에서 IP 주소를 조회하지 않도록 호스트 이름 대신 IP 주소를 사용하는 것이 약간 더 빠를 것입니다.

또한 원격 데이터베이스의 사용자 이름과 비밀번호는 이와 같이 연결할 때 일반 텍스트로 저장되므로이 구성 파일에 아무도 액세스 할 수 없도록 조치를 취해야합니다. 또는 로그인 할 때마다 입력하라는 메시지가 표시되도록 username 및 password 변수를 비워 둘 수 있습니다. 훨씬 안전합니다.


3
또한 데이터베이스 인스턴스의 방화벽이 트래픽을 허용하고 DB 서버의 사용자가 원격 액세스 권한을 갖도록해야합니다.
ceejayoz

여기에 질문을해도 될까요? 초보자로서 웹 사이트를 호스팅하는 클라이언트 서버에 설치된 phpMyAdmin을 통해 데이터베이스에 액세스하기 위해 브라우저에 어떤 형식의 링크를 입력해야하는지 궁금합니다.
Garavani

11

이 블로그 게시물을 따르십시오. 아주 쉽게 할 수 있습니다. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-using-phpmyadmin/

config.inc.php 파일 에는 phpMyAdmin 설치를위한 구성 설정이 포함되어 있습니다. 배열을 사용하여 연결할 수있는 모든 서버에 대한 구성 옵션 세트를 저장하며 기본적으로 하나의 컴퓨터, 로컬 호스트 만 있습니다. 다른 서버에 연결하려면 구성 배열에 다른 구성 옵션 세트를 추가해야합니다. 이 구성 파일을 편집해야합니다.

먼저 phpMyAdmin 폴더 에 있는 config.inc.php 파일을 엽니 다 . 에서 WAMP의 서버, 당신은에서 찾을 수 있습니다 WAMP \ APPS \ phpMyAdmin을 폴더에 있습니다. 그런 다음 해당 파일에 다음 부분을 추가하십시오.

$i++;
$cfg['Servers'][$i]['host']          = 'hostname/Ip Adress';
$cfg['Servers'][$i]['port']          = '';
$cfg['Servers'][$i]['socket']        = '';
$cfg['Servers'][$i]['connect_type']  = 'tcp';
$cfg['Servers'][$i]['extension']     = 'mysql';
$cfg['Servers'][$i]['compress']      = FALSE;
$cfg['Servers'][$i]['auth_type']     = 'config';
$cfg['Servers'][$i]['user']          = 'username';
$cfg['Servers'][$i]['password']      = 'password';

이 변수의 의미가 무엇인지 봅시다.

$i++ :- Incrementing variable for each server
$cfg[‘Servers’][$i][‘host’] :- Server host name or IP adress
$cfg[‘Servers’][$i][‘port’] :- MySQL port (Leave a blank for default port. Default MySQL port is 3306)
$cfg[‘Servers’][$i][‘socket’] :- Path to the socket (Leave a blank for default socket)
$cfg[‘Servers’][$i][‘connect_type’] :- How to connect to MySQL server (‘tcp or socket’)
$cfg[‘Servers’][$i][‘extension’] :- php MySQL extension to use (‘mysql or msqli’)
$cfg[‘Servers’][$i][‘compress’] :- Use compressed protocol for the MySQL connection (requires PHP >= 4.3.0)
$cfg[‘Servers’][$i][‘auth_type’] :- Method of Authentication
$cfg[‘Servers’][$i][‘username’] :- Username to the MySQL database in remote server
$cfg[‘Servers’][$i][‘password’] :- Password to the MySQL database int he remote server

이 구성 부분을 추가 한 후 서버를 다시 시작하면 phpMyAdmin 홈 페이지가 변경되고 서버를 선택하는 필드가 표시됩니다.

이제 해당 데이터베이스의 사용자 이름과 비밀번호를 입력하여 서버를 선택하고 원격 데이터베이스에 액세스 할 수 있습니다.


1
보다 정확하고 답변에 대해 더 자세히 설명해주세요. 링크 답변은 좋지만 어떤 이유로 든 링크가 손상된 경우 연결할 수 없습니다.
Milad Faridnia

9

답변 c.hill 답변에 명시된 바와 같이 안전한 솔루션 을 원할 경우 서버에 대한 SSH 터널을 여는 것이 좋습니다.

Windows 사용자를 위한 방법은 다음과 같습니다 .

  1. 로부터 가용 스루풋 및 퍼티를 다운로드 퍼티 웹 사이트 와 (내 예에서 선택한 폴더에 파일을 배치 C:\Putty)

  2. Windows 콘솔을 열고 Plink 폴더로 cd하십시오. cd C:\Putty

  3. SSH 터널을 열고 포트 3307로 리디렉션하십시오.

    plink -L 3307:localhost:3306 username@server_ip -i path_to_your_private_key.ppk

어디:

  • 3307은 리디렉션하려는 로컬 포트입니다.
  • localhost는 원격 서버에서 MySQL DB의 주소입니다 (기본적으로 localhost).
  • 3306은 원격 서버에서 PhpMyAdmin의 포트 사용입니다 (기본적으로 3306).

마지막으로 PhpMyAdmin을 설정할 수 있습니다 :

  1. config.inc.php 끝에 다음 줄을 추가하여 로컬 PhpMyAdmin 구성에 원격 서버를 추가하십시오.

추가 할 줄 :

$i++;   
$cfg['Servers'][$i]['verbose']          = 'Remote Dev server';
$cfg['Servers'][$i]['host']             = 'localhost';
$cfg['Servers'][$i]['port']             = '3307';
$cfg['Servers'][$i]['connect_type']     = 'tcp';
$cfg['Servers'][$i]['extension']        = 'mysqli';
$cfg['Servers'][$i]['compress']         = FALSE;
$cfg['Servers'][$i]['auth_type']        = 'cookie';
  1. 당신은 지금 연결할 수 있어야합니다 http://127.0.0.1/phpmyadmin

원격 서버에 연결할 때마다 콘솔을 열지 않으려면 배치 파일을 만드십시오 (2 개의 명령 줄을 .bat 파일에 저장).


6

phpMyAdmin 설치의 config.inc.php 파일에서 설정할 수 있습니다.

$cfg['Servers'][$i]['host'] = '';

5

나는 이것을 주석으로 추가했지만 내 명성은 아직 높지 않습니다.

버전 4.5.4.1deb2ubuntu2에서 다른 버전 4.5.x 이상을 추측합니다. config.inc.php 파일을 전혀 수정할 필요가 없습니다. 대신 conf.d 아래로 디렉토리를 하나 더 이동하십시오.

확장자가 '.php'인 새 파일을 만들고 행을 추가하십시오. 이는보다 모듈화 된 방식이며 각 원격 데이터베이스 서버 액세스 정보를 분리합니다.


2

맨 아래의 \ phpMyAdmin \ config.inc.php 파일로 이동하여 호스트, 사용자 이름, 비밀번호 등과 같은 호스팅 세부 정보를 변경하십시오.


2

우분투에서

PHPMyAdmin 폴더 (예 :“config.inc.php”)에서 단일 파일을 수정하면됩니다.“config.inc.php”에 아래 줄을 추가하십시오.

파일 위치 : /var/lib/phpmyadmin/config.inc.phpOR /etc/phpmyadmin/config.inc.php

해당 파일을 편집 할 수있는 권한이없는 경우이 명령을 사용하여 권한을 부여하십시오.

sudo chmod 777 /var/lib/phpmyadmin/config.inc.php

또는 (다른 시스템에서는이 두 위치를 확인해야 할 수도 있습니다)

sudo chmod 777 /etc/phpmyadmin/config.inc.php

그런 다음 config.inc.php파일에 코드를 복사하여 붙여 넣기

    $i++;
    $cfg['Servers'][$i]['auth_type']     = 'cookie';
    $cfg['Servers'][$i]['verbose'] = 'Database Server 2';
    $cfg['Servers'][$i]['host'] = '34.12.123.31';
    $cfg['Servers'][$i]['connect_type']  = 'tcp';
    $cfg['Servers'][$i]['compress']      = false;
    $cfg['Servers'][$i]['AllowNoPassword'] = false;

서버 세부 정보를 적절히 변경하십시오.


1

방법 1 (멀티 서버용)

먼저 원래 구성을 백업 해 보겠습니다.

sudo cp /etc/phpmyadmin/config.inc.php      ~/ 

이제 / usr / share / doc / phpmyadmin / examples / 파일에 config.manyhosts.inc.php 파일이 있습니다. 다음 명령을 사용하여 / etc / phpmyadmin /에 복사하십시오 .

sudo cp /usr/share/doc/phpmyadmin/examples/config.manyhosts.inc.php \
        /etc/phpmyadmin/config.inc.php

config.inc.php 편집

sudo nano /etc/phpmyadmin/config.inc.php 

검색 :

$hosts = array (
    "foo.example.com",
    "bar.example.com",
    "baz.example.com",
    "quux.example.com",
);

그리고 ip 또는 호스트 이름 배열을 저장하고 (nano CTRL + X에서 Y를 누름) 종료하십시오. 끝난

방법 2 (단일 서버) config.inc.php 편집

sudo nano /etc/phpmyadmin/config.inc.php 

검색 :

/* Server parameters */
if (empty($dbserver)) $dbserver = 'localhost';
$cfg['Servers'][$i]['host'] = $dbserver;

if (!empty($dbport) || $dbserver != 'localhost') {
    $cfg['Servers'][$i]['connect_type'] = 'tcp';
    $cfg['Servers'][$i]['port'] = $dbport;
}

그리고 다음과 같이 바꾸십시오 :

$cfg['Servers'][$i]['host'] = '192.168.1.100';
$cfg['Servers'][$i]['port'] = '3306';

192.168.1.100 을 자신의 mysql ip 서버 로 교체 해야합니다.

내 나쁜 영어에 대해 죄송합니다 (Google Translate의 책임은 : D)


1

테스트 할 때 config.default.php 파일을 찾습니다.

그런 다음 $ cfg [ 'AllowArbitraryServer'] = false 를 찾으십시오 .

그런 다음 true 로 설정하십시오.

참고 : 우분투에서 /usr/share/phpmyadmin/libraries/config.default.php 경로의 파일

메인 PHPMyAdmin 페이지에서 새로운 파일 이름 SERVER를 찾을 수 있으며, 로컬 데이터베이스의 IP 또는 로컬 호스트를 추가 할 수 있습니다.


0

Wamp Server가 설치된 Windows에서 구성 파일을 찾을 수 있습니다

C:\wamp64\apps\phpmyadmin4.8.4\config.inc.php

중공 라인을 적절히 변경하십시오

$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['port'] = 3306;//$wampConf['mysqlPortUsed'];
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = '';
$cfg['Servers'][$i]['password'] = '';

-1

의 전체 항목 삭제 /etc/http/conf.d/phpMyAdmin.conf

위의 파일에서 전체 아래,

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       #ADD following line:
       Require all granted
       Require ip 127.0.0.1
       Require ip ::1
     </RequireAny>
   </IfModule>
   <IfModule !mod_authz_core.c>
     # Apache 2.2
     #CHANGE following 2 lines:
     Order Allow,Deny
     Allow from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

그때,

MySQL 프롬프트에서 아래 명령을 실행하십시오.

GRANT ALL ON *.* to root@localhost IDENTIFIED BY 'root@<password>'

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'root@<password>'

참조 : IP가 보안 PhpMyAdmin에 액세스하도록 허용

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