2013-05-28 58 views

Trả lời

21

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

Nếu vì bất cứ lý do 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 biến số $cfg['Servers'][$i]['host'] và đặt thành IP hoặc tên máy chủ của máy chủ từ xa của bạn
  • Tìm số $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 các biến $cfg['Servers'][$i]['user']$cfg['Servers'][$i]['password'] và thiết lập các tên người dùng và mật khẩu của bạn cho các máy chủ từ xa

Nếu không có cấu hình máy chủ thích hợp, kết nối có thể chậm hơn so với một kết nối địa phương ví dụ, nó sẽ có thể nhanh hơn một chút để sử dụng địa chỉ IP thay vì tên máy chủ để tránh máy chủ phải tra cứu đị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 túy 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. Quay lại đầu trang Ngoài ra, bạn có thể để trống biến tên người dùng và 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 nhiều.

+3

Bạn cũng cần phải có các bức tường lửa trên database instance cho phép lưu lượng, và người dùng trên máy chủ với quyền truy cập từ xa DB. – ceejayoz

+0

Để biết thông tin của bạn, cổng 3306 là cổng MySQL mặc định –

6

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

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

Chỉ cần thêm bên dưới dòng sau vào tệp “config.inc.php” 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 "Current Server:" thả xuống với cả hai "127.0.0.1" và một trong những gì bạn đã cung cấp với "$ cfg ['Máy chủ'] [$ i] ['host']" cam chuyển đổi giữa các máy chủ.

hơn

chi tiết: http://goo.gl/FZ6nqD

+3

Cảm ơn bạn của tôi – Ernest

+2

@Ernest: welcome. –

+7

'$ 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 'localhost' mặc định. –

15

Nó chắc chắn là có thể truy cập vào một máy chủ MySQL từ xa từ một trường hợp địa phương của phpMyAdmin, như câu trả lời khác đã chỉ ra. Và để làm việc đó, bạn phải configure the remote server's MySQL server to accept remote connections và cho phép lưu lượng truy cập 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 nhau liên quan đến SSH Tunnelling.

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

ssh -NL 3307:localhost:3306 [email protected]_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 điều này trong nền, bạn sẽ cần phải thêm đối số -f và thiết lập Passwordless SSH 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ộ bằng cách sửa đổi tệp /etc/phpmyadmin/config.inc.php. Thêm dòng sau vào cuối file:

$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 sâu hơn blog post về chính xác này, trong trường hợp bạn cần giúp đỡ thêm.

+1

Tôi nghĩ đây là giải pháp an toàn. Việc mở mySQL để truy cập trực tiếp từ xa thường được xem là thực hành bảo mật kém nếu nó không thực sự cần thiết. – Omn

+1

Câu trả lời của c.hill không đúng. Xin lưu ý: Địa chỉ liên kết phải được đặt thành địa chỉ quay vòng trong tệp mysql my.cnf. –

+0

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 về cấu hình, thích câu trả lời của Suresh Kamrushi hơn. '$ ++' chắc chắn sẽ là dòng đầu tiên, không phải cuối cùng, ít nhất là cho phpmyadmin.conf mặc định của tôi. – frnhr

10

Làm theo bài đăng 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-using-phpmyadmin/

Tệp config.inc.php chứa 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 tập hợp các tùy chọn cấu hình cho mỗi máy chủ mà nó có thể kết nối đến 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ột máy chủ khác, bạn sẽ phải thêm một tập hợp các 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 cấu hình này.

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

$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ủ và bây giờ trang chủ phpMyAdmin của bạn sẽ thay đổi và nó sẽ hiển thị trường để chọn máy chủ.

Bây giờ bạn có thể chọn máy chủ 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 thể truy cập được nếu liên kết bị hỏng vì bất kỳ lý do gì. –

6

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

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

  1. Tải Plink và Putty từ Putty website và đặt các tập tin trong thư mục bạn đã chọn (Trong ví dụ của tôi C:\Putty)

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

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

    plink -L 3307:localhost:3306 [email protected]_ip -i path_to_your_private_key.ppk

đâu:

  • 3307 là cổng địa phương mà 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à sử dụng cổng cho PhpMyAdmin trên máy chủ từ xa (3306 theo mặc định)

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

  1. Thêm máy chủ từ xa để cấu hình phpMyAdmin địa phương của bạn bằng cách thêm dòng sau vào cuối config.inc.php

Lines 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 sẽ có thể bây giờ kết nối 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 khi bạn cần kết nối với máy chủ từ xa, chỉ cần tạo một tệp lô (bằng cách lưu 2 dòng lệnh trong tệp .bat).

1

Trong Ubuntu

Chỉ cần bạn cần phải sửa đổi một tập tin duy nhất trong PHPMyAdmin thư mục ví dụ: “config.inc.php” .Just thêm bên dưới dòng để “config.inc.php” của bạn.

file location: /var/lib/phpmyadmin/config.inc.php HOẶC /etc/phpmyadmin/config.inc.php

Có lẽ bạn không có sự cho phép để chỉnh sửa tập tin đó, chỉ cần cấp quyền sử dụng lệnh này

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

OR (trong các hệ thống khác nhau mà bạn có thể có để kiểm tra với hai địa điểm này)

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

Sau đó sao chép và dán mã trong bạn r config.inc.php tập tin

$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à hiện những thay đổi phù hợp với các chi tiết máy chủ của bạn

1

Đến nộp \ phpMyAdmin \ config.inc.php ở dưới cùng rất, 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.

4

Tôi đã thêm điều này làm nhận xét, nhưng danh tiếng của tôi chưa đủ cao.

Theo phiên bản 4.5.4.1deb2ubuntu2 và tôi đoán bất kỳ phiên bản 4.5.x nào hoặc mới hơn. Không cần phải sửa đổi tệp config.inc.php. Thay vào đó, hãy thêm một thư mục nữa vào conf.d.

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

+1

Trong khi liên kết này có thể trả lời câu hỏi, tốt hơn nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở thành không hợp lệ nếu trang được liên kết thay đổi. - [Từ đánh giá] (/ đánh giá/bài đăng chất lượng thấp/18797738) – msparer

Các vấn đề liên quan