2011-06-18 8 views
5

Tôi vừa tải xuống MySQL Workbench.Liên kết MySQL Workbench với Máy chủ Từ xa của tôi

Nhưng tôi không hoàn toàn hiểu cách đồng bộ hóa với cơ sở dữ liệu trên máy chủ từ xa của mình.

Bàn làm việc yêu cầu "tên máy chủ" vì vậy tôi đã cung cấp tên máy chủ của máy chủ từ xa của mình. Tôi chỉ định cổng 3306.

Sau đó tôi cung cấp tên người dùng. Đây là tên người dùng tôi sử dụng khi đăng nhập vào PhpAdmin - tôi có nên sử dụng tên người dùng khác không?

Sau đó, tôi cung cấp mật khẩu, một lần nữa mật khẩu tôi sử dụng cho PhpAdmin.

Nhưng cách này không hiệu quả.

Nhưng kỳ lạ, lỗi luôn luôn nói với tôi tên người dùng của tôi là: [email protected]_network_im_using_to_access_the_internet

Nhưng điều này có vẻ không đúng - vào phpAdmin tên người dùng của tôi nói [email protected].

Tôi không chắc chắn phải làm gì.

Bạn có thể giúp tôi không?

Trả lời

13

MySQL xử lý thông tin đăng nhập cụ thể cho máy chủ mà chúng bắt nguồn. Bạn có thể có mật khẩu khác với máy chủ của mình so với mật khẩu bạn sử dụng trên chính máy chủ và bạn có thể có các nhóm quyền hoàn toàn khác nhau được cấp cho cùng một tên người dùng từ các máy chủ gốc khác nhau.

Trên PHPMyadmin, cơ sở dữ liệu đang chạy trên cùng một máy chủ với máy chủ web và do đó tự đề cập đến là localhost, với IP 127.0.0.1. Máy của bạn mà Workbench được cài đặt phải truy cập MySQL với các thông tin khác nhau hơn [email protected] của bạn. Máy chủ yêu cầu bạn cấp quyền truy cập vào tên người dùng của bạn từ bất kỳ máy chủ nào mà bạn định kết nối từ đó.

Trong phpMyAdmin, bạn sẽ cần phải cấp quyền truy cập vào cơ sở dữ liệu của bạn từ các máy chủ từ xa: (Xem thêm câu trả lời Pekka cho làm thế nào để cho phép kết nối từ bất kỳ chủ)

GRANT ALL PRIVILEGES on dbname.* TO [email protected]_remote_hostname IDENTIFIED BY 'yourpassword'; 

Để xem tất cả các khoản hỗ trợ bạn hiện có trên localhost để bạn có thể lặp lại chúng cho các máy chủ từ xa:

SHOW GRANTS FOR [email protected]; 

Bên cạnh đó, máy chủ MySQL cần phải được thiết lập để chấp nhận các kết nối từ xa ở nơi đầu tiên. Điều này không phải luôn luôn như vậy, đặc biệt là trên nền tảng lưu trữ web. Trong tệp my.cnf, dòng skip-networking phải được xóa hoặc nhận xét.Nếu không có đường dây skip-networking, bạn phải nhận xét dòng:

bind-address = 127.0.0.1 

... sau đó khởi động lại MySQL.

+0

Rất hữu ích Michael - hiện tại, máy chủ của tôi không cho phép tôi thực hiện các lệnh bạn đã cung cấp cho tôi. Tôi nghĩ rằng điều này có thể là vì, như bạn đã nói, máy chủ MySQL không được thiết lập để chấp nhận các kết nối từ xa. Tuy nhiên, tôi đã tìm kiếm giám đốc máy chủ của tôi cho 'my.cnf' và tôi không thể tìm thấy nó. Bạn có thể công ty lưu trữ web của tôi được giữ lại điều này từ tôi? – Jeff

+0

@ Jeff Vâng, tôi e rằng bạn sẽ phải liên hệ với công ty lưu trữ web của mình để tìm hiểu xem họ có cho phép các kết nối mysql từ xa không. Tôi nghĩ, thật không may, nó không phổ biến cho họ để cho phép nó. –

+0

@MichaelBerkowski nhận xét ra ràng buộc địa chỉ tôi thấy tài liệu nói rằng nó cần phải được IP của máy chủ. địa chỉ, mặc dù tôi không chắc chắn những gì có thể được thực hiện khi i.p. không phải là tĩnh. –

1

phpMyAdmin của bạn dường như chạy trên cùng một máy chủ với chính cơ sở dữ liệu.

Do đó, nó có thể sử dụng [email protected] để kết nối với máy chủ.

Bạn sẽ cần phải thực hiện mySQL chấp nhận kết nối từ bên ngoài localhost bằng cách thêm một người dùng khác [email protected]% (% có nghĩa là "bất kỳ máy chủ lưu trữ nào").

Tuy nhiên, lưu ý rằng đây không phải là thực hành tốt - nếu bạn có IP tĩnh, hãy xem xét giới hạn quyền truy cập vào một địa chỉ đó.

+1

Chỉ cần lưu ý, đừng quên kiểm tra tham số 'bind-address' trong my.cnf của bạn, theo mặc định máy chủ chỉ chấp nhận các kết nối trong máy chủ cục bộ. – sahid