Có vẻ như bạn đang gặp một vài vấn đề ở đây,
HẾT GIỜ
Tôi sẽ bắt đầu ở đây vì bạn có thể gặp sự cố về quyền. Trước tiên, tôi khuyên bạn nên đảm bảo rằng địa chỉ IP cục bộ của bạn có quyền kết nối với cơ sở dữ liệu mySQL từ xa của bạn và ngược lại, tùy thuộc vào thiết lập của bạn, bạn có thể định cấu hình điều này trong phpMyAdmin, một gói lưu trữ như cPanel hoặc thông qua truy cập shell. Tôi khuyên bạn nên thiết lập một người dùng riêng với mật khẩu mạnh để truy cập từ xa. Bạn nên có một địa chỉ IP tĩnh trên kết nối internet cục bộ của mình, nếu bạn không có địa chỉ liên hệ với Nhà cung cấp dịch vụ Internet và hãy sắp xếp một địa chỉ.
Trong phpMyAdmin, nếu bạn có đủ quyền truy cập, thông qua tab "đặc quyền người dùng" và đặt "máy chủ lưu trữ" dưới "thông tin đăng nhập". Tôi không đề xuất cài đặt "bất kỳ máy chủ lưu trữ nào" vì lý do bảo mật rõ ràng.
Trong cPanel, bên dưới "cơ sở dữ liệu", bạn sẽ tìm thấy "mySQL từ xa" nơi bạn có thể đặt địa chỉ IP của mình.
Cuối cùng trong SSH,
- mở tệp cấu hình mySQL bằng trình chỉnh sửa yêu thích của bạn như VI hoặc Nano, trên Ubuntu, tệp này được đặt tại "/etc/mysql/my.conf",
- nhận xét "bind-address =127.0.0.1" để nó trông giống như "# bind-address =127.0.0.1",
- khởi động lại mySQL bằng "/etc/init.d/mysql restart",
- đăng nhập vào mySQL bằng "mysql -u root -p",
- cho người dùng mới, "CREATE USER 'MY_USERNAME' @ 'localhost' ĐƯỢC XÁC NHẬN BỞI 'MY_PASSWORD'"
- theo sau là "CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ TRÊN 'MY_DATABASE'. * TO 'MY_USERNAME'@'12.34.56.78' ĐƯỢC XÁC ĐỊNH BỞI 'MY_PASSWORD';" - lưu ý, thay thế IP "12.34.56.78" bằng địa chỉ IP thực của bạn.
- Bây giờ bạn sẽ có xác nhận dọc theo các dòng truy vấn.
- Cuối cùng thoát khỏi mysql bằng lệnh "thoát" và khởi động lại bằng "/etc/init.d/mysql khởi động lại"
LƯU Ý:Tôi khuyên bạn nên thiết lập cả hai cài đặt mySQL để truy cập từ xa.
Bây giờ tôi khuyên bạn nên thử nghiệm điều này bằng cách chạy một tập lệnh nhỏ trên máy cục bộ của bạn, chẳng hạn như
<?php
$host = 'mysql_remoteip';
$user = 'mysql_username';
$pass = 'mysql_password';
$db = 'mysql_database';
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error());
$sql = "SELECT column FROM table WHERE column='my_var'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(empty($row['column']) {
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?";
} else {
echo "The data I retrieved is:<br />"
echo $row['column'];
}
}
?>
LƯU Ý:bạn phải có dữ liệu trong cơ sở dữ liệu để tập lệnh hoạt động chính xác, kết quả không có dữ liệu sẽ hiển thị thông báo rằng tập lệnh không thể truy xuất dữ liệu, điều này sẽ vẫn thiết lập nếu bây giờ bạn có quyền truy cập vào cơ sở dữ liệu hoặc không nhưng không không đảm bảo nó hoạt động 100%.
MASTER HOẶC TRƯỢT
Có, hoàn toàn có thể, với điều kiện bạn có đủ quyền truy cập
Trong phpMyAdmin:
- trong tab "sao chép", bạn sẽ tìm thấy một trình hướng dẫn cung cấp cho bạn mã để đặt mã này trong tệp cấu hình mySQL (trên Ubuntu, nó nằm tại "/etc/mysql/my.conf"),
- nhấp vào liên kết để định cấu hình máy chủ chính
- nhập thông tin vào biểu mẫu, sao chép mã
- chuyển đến tệp cấu hình của bạn (vị trí ở trên) và thêm mã do phpMyAdmin cung cấp
- sau khi bạn cập nhật tệp cấu hình, hãy khởi động lại mySQL và nhấp vào nút bắt đầu trong phpMyAdmin, thao tác này sẽ xác nhận các thay đổi
- Bây giờ một lần nữa trong tab "sao chép", hãy nhấp vào liên kết để định cấu hình máy chủ phụ
- đảm bảo rằng bạn có id máy chủ duy nhất trong tệp cấu hình của mình, nếu không, hãy thêm dòng do phpMyAdmin cung cấp vào phần [mysqld] của tệp
- Điền đầy đủ thông tin bắt buộc và nhấp vào Tiếp tục
Điều này sẽ thiết lập bản sao của bạn.
ĐỒNG BỘ HÓA
Nếu vẫn không thành công thì trong phpMyAdmin vào tab "đồng bộ hóa", nhập thông tin và bạn đi, bạn chỉ cần xác nhận đồng bộ ở trang tiếp theo và 2 giây sau là xong, thật dễ dàng.
Đối với máy chủ sản xuất, cá nhân tôi có thiết lập sao chép chính / nô lệ nhưng để phát triển, tôi đồng bộ hóa khi tôi cần dữ liệu "sống" để sao chép lỗi hoặc sự cố, điều này là do tôi chỉ cần đồng bộ hóa 6-12 tháng một lần. Nếu tôi cần dữ liệu trực tiếp cục bộ thì tôi sẽ thiết lập bản sao chính / nô lệ