Làm cách nào để truy cập máy chủ từ xa với máy khách phpMyAdmin cục bộ?


134

Giả sử có một máy chủ từ xa và tôi có máy khách phpMyAdmin được cài đặt cục bộ trên máy tính của tôi. Làm cách nào tôi có thể truy cập máy chủ này và quản lý nó thông qua ứng dụng khách phpMyAdmin? Điều đó có thể không?


1
bạn cũng có thể cài đặt phpmyadminhình ảnh docker cục bộ và kết nối với máy chủ MySQL từ xa của bạn. biết thêm chi tiết tại đây :docker run --name myadmin -d -e PMA_HOST=<REMOTE_DB_HOST> -e PMA_PORT=<REMOTE_DB_PORT> -p 8080:80 phpmyadmin/phpmyadmin
Xiao

Câu trả lời:


175

Chỉ cần thêm dòng dưới đây vào /etc/phpmyadmin/config.inc.phptập tin của bạn ở phía dưới:

$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

. Bạn sẽ nhận được Máy chủ hiện tại của Đức

Thêm chi tiết: http://sforsuresh.in/access-remote-mysql-server-USE-local-phpmyadmin/


16
Đây $i++là một điểm quan trọng vì điều này sẽ không làm cho chúng ta mất kết nối cơ sở dữ liệu với mặc định localhost.
Gaurav Ramanan

Tôi cũng đã phải làm theo các bước trong bài đăng này sau khi thiết lập nó trong phpMyAdmin để làm cho nó hoạt động.
Ahmed Akhtar

2
/etc/phpmyadmin/config.inc.phplà tập tin chính xác cần thay đổi
Xiao

Phương pháp trên là hoàn toàn chính xác nhưng tại sao tất cả các bạn đã không nói với tôi rằng tôi sẽ phải thêm hoặc lấy nó thêm địa chỉ IP của tôi trong Remote mySql. nếu không nó sẽ không hoạt động. Xin bạn bè cũng lưu ý điều này
Jaydeep Goswami

Nếu bất cứ ai đang làm việc trên hệ thống Apple thì config.inc.phptệp được đặt tại Applications/XAMPP/xamppfiles/phpmyadmin/config.inc.phptệp.
Anirudha Mahale

23

Chắc chắn có thể truy cập máy chủ MySQL từ xa từ một phiên bản cục bộ của phpMyAdmin, như các câu trả lời khác đã chỉ ra. Và để làm việc đó, bạn phải định cấu hình máy chủ MySQL của máy chủ từ xa để chấp nhận các kết nối từ xa và cho phép lưu lượng truy cập thông qua tường lửa cho số cổng mà MySQL đang nghe. Tôi thích một giải pháp hơi khác liên quan đến SSH Tunneling .

Lệnh sau sẽ thiết lập một đường hầm SSH sẽ chuyển tiếp tất cả các yêu cầu được thực hiện tới cổng 3307 từ máy cục bộ của bạn sang cổng 3306 trên máy từ xa:

ssh -NL 3307:localhost:3306 root@REMOTE_HOST

Khi được nhắc, bạn nên nhập mật khẩu cho người dùng root trên máy từ xa. Điều này sẽ mở đường hầm. Nếu bạn muốn chạy cái này trong nền, bạn sẽ cần thêm -fđối số và thiết lập SSH không mật khẩu giữa máy cục bộ của bạn và máy từ xa.

Sau khi bạn có đường hầm SSH hoạt động, bạn có thể thêm máy chủ từ xa vào danh sách máy chủ trong phpMyAdmin cục bộ của mình bằng cách sửa đổi /etc/phpmyadmin/config.inc.phptệp. Thêm phần sau vào cuối tập tin:

$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++;

Tôi đã viết một bài viết chuyên sâu hơn về chính xác điều này, trong trường hợp bạn cần thêm trợ giúp.


1
Tôi nghĩ rằng đây là giải pháp an toàn. Việc mở myQuery để truy cập từ xa trực tiếp thường được coi là một hoạt động bảo mật kém nếu không thực sự cần thiết.
Omn

1
Câu trả lời của c.hill không hoàn toàn đúng. Xin lưu ý: Địa chỉ liên kết phải được đặt thành địa chỉ lặp lại trong tệp mys.cn my.cnf.

Không cần phải root trên máy chủ từ xa. cây cầu hoạt động hoàn hảo, cảm ơn! Tuy nhiên, tôi không chắc lắm về cấu hình, thích câu trả lời của Suresh Kamrushi. $++chắc chắn phải là dòng đầu tiên, không phải cuối cùng, ít nhất là đối với phpmyadmin.conf mặc định của tôi.
frnhr

Tôi vừa gặp phải trường hợp cần thay đổi $ cfg ['Máy chủ'] [$ i] ['auth_type'] = 'config'; // giữ nguyên cấu hình thành $ cfg ['Máy chủ'] [$ i] ['auth_type'] = 'cookie'; // giữ nó như cấu hình. Vì vậy, cảm ơn cho lời khuyên đó!
Phil Lawlor

Giải pháp tốt nhất!
Ghasem Sadeghi

23

Nó có thể được thực hiện, nhưng bạn cần thay đổi cấu hình phpMyAdmin, đọc bài đăng này: http://www.danielmois.com/article/Manage_remote_database_from_localhost_with_phpMyAdmin

Nếu vì bất kỳ lý do nào khiến liên kết chết, bạn có thể sử dụng các bước sau:

  • Tìm tệp cấu hình của phpMyAdmin, được gọi là config.inc.php
  • Tìm $cfg['Servers'][$i]['host']biến và đặt nó thành IP hoặc tên máy chủ của máy chủ từ xa của bạn
  • Tìm $cfg['Servers'][$i]['port']biến và đặt nó vào cổng mysql từ xa. Thông thường đây là3306
  • Tìm $cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password']các biến và đặt chúng cho tên người dùng và mật khẩu của bạn cho máy chủ từ xa

Nếu không có cấu hình máy chủ phù hợp, ví dụ kết nối có thể chậm hơn kết nối cục bộ, có thể sử dụng địa chỉ IP thay vì tên máy chủ để tránh máy chủ phải tìm địa chỉ IP từ tên máy chủ.

Ngoài ra, hãy nhớ rằng tên người dùng và mật khẩu của cơ sở dữ liệu từ xa của bạn được lưu trữ trong văn bản thuần khi bạn kết nối như thế này, vì vậy bạn nên thực hiện các bước để đảm bảo rằng không ai có thể truy cập tệp cấu hình này. Ngoài ra, bạn có thể để trống tên người dùng và biến mật khẩu để được nhắc nhập chúng mỗi khi bạn đăng nhập, điều này an toàn hơn rất nhiều.


3
Bạn cũng cần phải có tường lửa trên cơ sở dữ liệu cho phép lưu lượng truy cập và người dùng trên máy chủ DB có các đặc quyền để truy cập từ xa.
ceejayoz

Tôi có thể hỏi một câu hỏi ở đây? Khi tôi là người mới, tôi tò mò không biết nên liên kết với hình thức nào trong trình duyệt để truy cập cơ sở dữ liệu qua phpMyAdmin được cài đặt trên máy chủ của khách hàng của tôi, người tự lưu trữ trang web.
Garavani

11

Theo dõi bài viết trên blog này. Bạn có thể làm điều đó rất dễ dàng. https://wadsashika.wordpress.com/2015/01/06/manage-remote-mysql-database-locally-USE-phpmyadmin/

Tệp config.inc.php chứa các cài đặt cấu hình cho cài đặt phpMyAdmin của bạn. Nó sử dụng một mảng để lưu trữ các bộ tùy chọn cấu hình cho mọi máy chủ mà nó có thể kết nối và theo mặc định chỉ có một, máy của riêng bạn hoặc localhost. Để kết nối với máy chủ khác, bạn sẽ phải thêm một bộ tùy chọn cấu hình khác vào mảng cấu hình. Bạn phải chỉnh sửa tập tin cấu hình này.

Lần đầu tiên mở tệp config.inc.php được giữ trong thư mục phpMyAdmin . Trong máy chủ wamp , bạn có thể tìm thấy nó trong thư mục wamp \ apps \ phpmyadmin . Sau đó thêm phần sau vào tập tin đó.

$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';

Hãy xem ý nghĩa của các biến này là gì.

$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

Sau khi thêm phần cấu hình này, hãy khởi động lại máy chủ của bạn và bây giờ trang chủ phpMyAdmin của bạn sẽ thay đổi và nó sẽ hiển thị một trường để chọn máy chủ.

Bây giờ bạn có thể chọn máy chủ của mình và truy cập cơ sở dữ liệu từ xa bằng cách nhập tên người dùng và mật khẩu cho cơ sở dữ liệu đó.


1
có thể vui lòng chính xác hơn và giải thích thêm về câu trả lời của bạn. câu trả lời liên kết là tốt nhưng có thể không truy cập được nếu liên kết bị hỏng vì bất kỳ lý do nào.
Milad Faridnia

9

Như đã nêu trong câu trả lời c.hill , nếu bạn muốn một giải pháp an toàn, tôi khuyên bạn nên mở một đường hầm SSH đến máy chủ của bạn.

Đây là cách để làm điều đó cho người dùng Windows :

  1. Tải xuống Plink và Putty từ trang web của Putty và đặt các tệp vào thư mục bạn chọn (Trong ví dụ của tôi C:\Putty)

  2. Mở bàn điều khiển Windows và cd vào thư mục Plink: cd C:\Putty

  3. Mở đường hầm SSH và chuyển hướng đến cổng 3307:

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

Ở đâu:

  • 3307 là cổng cục bộ bạn muốn chuyển hướng đến
  • localhost là địa chỉ của MySQL DB trên máy chủ từ xa (localhost theo mặc định)
  • 3306 là cổng sử dụng cho PhpMyAdmin trên máy chủ từ xa (theo mặc định là 3306)

Cuối cùng, bạn có thể thiết lập PhpMyAdmin:

  1. Thêm máy chủ từ xa vào cấu hình PhpMyAdmin cục bộ của bạn bằng cách thêm dòng sau vào cuối config.inc.php

Dòng để thêm:

$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. Bạn có thể kết nối ngay bây giờ tại http://127.0.0.1/phpmyadmin

Nếu bạn không muốn mở bàn điều khiển mỗi lần bạn cần kết nối với máy chủ từ xa, chỉ cần tạo một tệp bó (bằng cách lưu 2 dòng lệnh trong tệp .bat).


6

Bạn có thể đặt trong tệp config.inc.php của bản cài đặt phpMyAdmin của bạn.

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

5

Tôi đã có thể thêm điều này như một bình luận, nhưng danh tiếng của tôi vẫn chưa đủ cao.

Trong phiên bản 4.5.4.1deb2ubfox2 và tôi đoán bất kỳ phiên bản nào khác 4.5.x trở lên. Không cần phải sửa đổi tập tin config.inc.php. Thay vào đó hãy đi thêm một thư mục xuống conf.d.

Tạo một tệp mới với phần mở rộng '.php' và thêm các dòng. Đây là một cách tiếp cận được mô đun hóa tốt hơn và cô lập từng thông tin truy cập máy chủ cơ sở dữ liệu từ xa.


2

Đi đến tệp \ phpMyAdmin \ config.inc.php ở dưới cùng, thay đổi các chi tiết lưu trữ như máy chủ, tên người dùng, mật khẩu, v.v.


2

Trong Ubuntu

Chỉ cần bạn sửa đổi một tập tin duy nhất trong thư mục PHPMyAdmin, tức là config config.inc.php,. Chỉ cần thêm các dòng dưới đây vào tệp config config.inc.php của bạn.

Vị trí tệp: /var/lib/phpmyadmin/config.inc.phpHOẶC /etc/phpmyadmin/config.inc.php

Có thể bạn không có quyền chỉnh sửa tệp đó, chỉ cần cấp quyền bằng lệnh này

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

HOẶC (trong các hệ thống khác nhau, bạn có thể phải kiểm tra hai địa điểm này)

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

Sau đó sao chép và dán mã trong config.inc.phptệp của bạn

    $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;

Và thực hiện các thay đổi phù hợp với chi tiết máy chủ của bạn


1

Phương pháp 1 (đối với máy đa năng)

Đầu tiên, hãy tạo một bản sao lưu của cấu hình gốc.

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

Bây giờ trong / usr / share / doc / phpmyadmin / example / bạn sẽ thấy một tệp config.manyhosts.inc.php . Chỉ cần sao chép vào / etc / phpmyadmin / bằng cách sử dụng lệnh dưới đây:

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

Chỉnh sửa config.inc.php

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

Tìm kiếm :

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

Và thêm mảng ip hoặc tên máy chủ lưu của bạn (trong nano CTRL + X nhấn Y) và thoát. Làm xong

Phương pháp 2 (máy chủ đơn) Chỉnh sửa config.inc.php

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

Tìm kiếm :

/* 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;
}

Và thay thế bằng:

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

Remeber để thay thế 192.168.1.100 bằng máy chủ ip mysql của riêng bạn.

Xin lỗi vì tiếng Anh của tôi không tốt (google dịch có lỗi: D)


1

Khi tôi kiểm tra Nó tìm thấy tệp config.default.php

sau đó tìm $ cfg ['AllowArbitraryServer'] = false;

sau đó đặt thành đúng

lưu ý: trên Ubuntu tệp trong đường dẫn /usr/share/phpmyadmin/lologists/config.default.php

sau đó bạn sẽ tìm thấy một tên tệp SERVER mới trong trang PHPMyAdmin chính, bạn có thể thêm vào nó bất kỳ IP hoặc localhost nào cho cơ sở dữ liệu cục bộ.


0

Trong Windows với Wamp Server được cài đặt, bạn có thể tìm thấy tệp cấu hình

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

Thay đổi dòng bolow cho phù hợp

$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

Xóa các mục hoàn thành của /etc/http/conf.d/phpMyAdmin.conf

Và bên dưới các mục trong tập tin trên,

<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>

Sau đó,

chạy bên dưới lệnh trong dấu nhắc MySQL,

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

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

Để tham khảo: Cho phép IP truy cập PhpMyAdmin được bảo mật

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.