Làm cách nào để thêm công cụ LIÊN KẾT trong MySQL?
Trở lại vào tháng 11 năm 2020, đã đến lúc phải suy nghĩ lại về cơ sở hạ tầng sao chép MySQL cho Bảng điều khiển máy bay, bảng điều khiển khách hàng của chúng tôi tại Online GmbH. Toàn bộ ứng dụng chạy trên một máy chủ riêng biệt, nhưng một trích xuất thông tin tài khoản thư (thông tin xác thực tài khoản thư, ánh xạ/chuyển tiếp thư) cần được sao chép tới 3 máy chủ thư của chúng tôi ( 5, 6, 7). Vào thời điểm đó, tôi đang sử dụng bản sao MySQL MASTER-SLAVE cho một cơ sở dữ liệu duy nhất trong thiết lập 4 nút (1 chính + 3 nô lệ) Show
Vì lý do bảo mật, tôi không còn muốn bất kỳ máy chủ thư nào có quyền truy cập vào binlog của máy chủ đã lưu trữ bảng điều khiển của chúng tôi (mặc dù tôi đã giới hạn điều đó ở một cơ sở dữ liệu duy nhất chỉ có dữ liệu liên quan đến máy chủ thư). Tôi cũng muốn giảm độ phức tạp đi một chút, chỉ sử dụng bản sao MySQL cho 3 máy chủ thư và truyền bá 5 cho chủDữ liệu máy chủ thư được trích xuất từ cơ sở dữ liệu bảng điều khiển của chúng tôi bằng trình kích hoạt MySQL (chủ yếu là trình kích hoạt 0, 1 và 2) vào một cơ sở dữ liệu riêng biệt 3. Làm cách nào để lấy toàn bộ dữ liệu 3 được lưu trữ trên máy chủ từ xa 5 mà không cần sử dụng bản sao MySQL? Đó là nơi Công cụ lưu trữ LIÊN KẾT của MySQL phát huy tác dụng Hướng dẫn tham khảo MySQL cung cấp cho chúng tôi một lời giải thích hay cho công cụ lưu trữ 6
Tôi sẽ giải thích cách thiết lập bảng ________ 06 trên máy chủ bảng điều khiển chính của chúng tôi, được gọi là ________ 90 bên dưới. Cơ sở dữ liệu chính sẽ được lưu trữ trên máy chủ thư chính của chúng tôi, được gọi là 5 bên dưới. Tôi sẽ không giải thích cách thiết lập bản sao MySQL trong bài viết nàyChuẩn bị máy chủ từ xaTrên máy chủ từ xa 5 sẽ lưu trữ cơ sở dữ liệu 3, chúng tôi cần thiết lập một người dùng MySQL riêng sẽ được sử dụng để truy cập 4 2Chuẩn bị máy chủ nguồnBật Công cụ lưu trữ LIÊN KẾTTheo mặc định, MySQL FEDERATED Storage Engine không được kích hoạt trong MySQL. Để bật 6, bạn phải khởi động máy chủ MySQL bằng tùy chọn 6. Bạn có thể định cấu hình cái này trong 7 của mìnhSau khi khởi động lại MySQL, hãy kiểm tra xem công cụ đã được bật chưa Chúng tôi chỉ cần kích hoạt 6 trên máy chủ sử dụng bảng 6, không phải trên máy chủ từ xa nơi nó kết nối với. Trong trường hợp của tôi, tôi phải bật 6 trên 0, nhưng không phải trên 5Tạo MÁY CHỦChuẩn bị MÁY CHỦ (thông tin xác thực người dùng cho kết nối người dùng 3 với 5) cho Công cụ lưu trữ 6 với câu lệnh 26 trên 0
Sau đó, bạn nên kiểm tra kết nối
Thiết lập bảng CREATE SERVER mailsync FOREIGN DATA WRAPPER mysql OPTIONS (HOST 'mailsrv', DATABASE 'mailsync', USER 'mailsync', PASSWORD '********'); 6Giả sử chúng ta đã thiết lập cơ sở dữ liệu từ xa 3 trên điều khiển từ xa 5 và có sẵn một lược đồ bảng từ toàn bộ cơ sở dữ liệu đó. Bây giờ bạn nên sao chép lược đồ db đó 81 sang 82 và chỉ cần thêm 83 vào cuối mỗi câu lệnh 84, e. gmailsync-schema-liên kết. sql 2Tiền tố 85 trong 86 đề cập đến kết nối mà chúng tôi đã thiết lập với 26 (xem bên trên). Bạn nên sử dụng chính xác cùng một lược đồ bảng trên cả hai máy chủ MySQL. Và không, 6 không thể phát hiện lược đồ bảng từ xa, vì vậy bạn cần sao chép toàn bộ định nghĩa trường 84. Lược đồ trên máy chủ nguồn sẽ chỉ hoạt động như một khung để truy cập dữ liệu từ xaHãy nhớ rằng, không có dữ liệu nào của cơ sở dữ liệu 3 đó được lưu trữ trên máy chủ nguồn 0 của chúng tôi, vì vậy bạn có thể tải lại toàn bộ lược đồ cơ sở dữ liệu bất cứ lúc nào như thế này mà không mất bất kỳ dữ liệu nào 8Bây giờ bạn có thể 12 dữ liệu vào cơ sở dữ liệu này và nó thực sự sẽ được chèn trực tiếp vào máy chủ từ xa 5, tất cả đều minh bạch và kỳ diệuVấn đề có thể xảy raCho đến MySQL 8. 0. 23, 6 đang hoạt động hoàn hảo mà không có bất kỳ sự cố nào. Giao tiếp giữa hai máy chủ siêu ổn định. Nhưng kể từ MySQL 8. 0. 24h bắt đầu thấy lỗi lẻ tẻ trên source host như 1Tôi đã có thể theo dõi điều này xuống Công cụ lưu trữ 6 và vấn đề dường như liên quan đến công cụ mới được giới thiệu
Tôi đã báo cáo vấn đề này trong Diễn đàn cộng đồng Percona Cho đến bây giờ, vấn đề vẫn chưa được giải quyết và tôi vẫn đang chờ phản hồi trên bài đăng trên diễn đàn đó. Nhưng cài đặt đủ cao (nâng nó từ mặc định 8h lên 24h) như một giải pháp thay thế gần như đã khiến vấn đề này biến mất Công cụ LIÊN KẾT trong mysql là gì?Liên kết là công cụ lưu trữ dành cho hệ thống quản lý cơ sở dữ liệu quan hệ MySQL MariaDB cho phép tạo bảng là biểu diễn cục bộ của bảng nước ngoài (từ xa). It uses the MySQL client library API as a data transport, treating remote tables as if they were located on the local server.
Động cơ FEDERATED là gì?Công cụ lưu trữ LIÊN BANG ban đầu được thiết kế để cho phép một người truy cập dữ liệu từ xa mà không cần sử dụng phân cụm hoặc sao chép và thực hiện các truy vấn cục bộ tự động truy cập dữ liệu từ xa.
Bảng LIÊN KẾT là gì?Bảng LIÊN KẾT bao gồm hai phần tử. Máy chủ từ xa có bảng cơ sở dữ liệu, bảng này bao gồm định nghĩa bảng (được lưu trữ trong từ điển dữ liệu MySQL) và bảng được liên kết . Loại bảng của bảng từ xa có thể là bất kỳ loại nào được máy chủ mysqld từ xa hỗ trợ, bao gồm MyISAM hoặc InnoDB.
Làm cách nào để tạo một máy chủ trong MySQL?TẠO TRÌNH GÓI DỮ LIỆU NGOÀI CỦA MÁY CHỦ TÙY CHỌN mysql (NGƯỜI DÙNG 'Từ xa', MÁY CHỦ '198. 51. 100. 106', CƠ SỞ DỮ LIỆU 'kiểm tra'); . Tên người dùng, tên máy chủ và tên cơ sở dữ liệu là bắt buộc. |