Tôi muốn sử dụng công cụ lưu trữ liên kết do MySQL cung cấp. Bạn có thể giúp tôi giải thích cách tạo bảng kiểu liên kết trong MySQL không?
Quy trình tạo bảng liên kết hơi khác so với quy trình của các loại bảng khác do MySQL cung cấp. Quá trình này được minh họa tốt nhất bằng ví dụ. Giả sử một bảng có tiêu đề sản phẩm nằm trong cơ sở dữ liệu công ty trên một máy chủ từ xa [gọi nó là "My_Remote_Server"]. Cái bàn trông như thế này
CREATE TABLE product [ product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, product_sku CHAR[8] NOT NULL, product_name VARCHAR[35] NOT NULL, product_price DECIMAL[6,2] ] ENGINE=MyISAM;
Bây giờ, giả sử rằng bạn muốn truy cập bảng trên từ một số máy chủ khác [gọi nó là "My_Local_Server"]. Để làm như vậy, hãy tạo cấu trúc bảng giống như trên "My_Local_Server", với điểm khác biệt duy nhất là loại công cụ bảng phải là LIÊN KẾT thay vì MyISAM. Ngoài ra, phải cung cấp các tham số kết nối, cho phép "My_Local_Server" giao tiếp với bảng trên "My_Remote_Server"
CREATE TABLE product [ product_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, product_sku CHAR[8] NOT NULL, product_name VARCHAR[35] NOT NULL, product_price DECIMAL[6,2] ] ENGINE=FEDERATED; COMMENT='mysql://remoteuser:secret@192.168.1.101/corporate/product';
Đầu tiên, người dùng được xác định bởi tên người dùng từ xa và bí mật mật khẩu phải nằm trong cơ sở dữ liệu MySQL được tìm thấy trên "My_Remote_Server". Thứ hai, hãy nhớ rằng thông tin này sẽ được truyền qua một mạng có thể không an toàn đến "My_Remote_Server", bất kỳ ai cũng có thể nắm bắt được không chỉ các biến xác thực mà còn cả dữ liệu bảng. Vì vậy bạn cũng nên làm vài phép đo để thoát khỏi bên này
Sau khi nó được tạo, bạn có thể truy cập bảng sản phẩm "My_Remote_Server" bằng cách truy cập bảng sản phẩm trên "My_Local_Server". Hơn nữa, miễn là người dùng được chỉ định trong chuỗi kết nối có các đặc quyền cần thiết, thì cũng có thể thêm, sửa đổi và xóa dữ liệu nằm trong bảng từ xa này
Bạn có thể sử dụng Cổng SQL để định cấu hình dịch vụ truy cập từ xa MySQL và thiết lập các bảng được liên kết cho dữ liệu Access. Dịch vụ này là một quy trình daemon cung cấp giao diện MySQL cho Trình điều khiển CData ODBC để truy cập. Sau khi bạn đã bắt đầu dịch vụ, bạn có thể tạo một máy chủ và các bảng bằng cách sử dụng Công cụ lưu trữ LIÊN KẾT trong MySQL. Sau đó, bạn có thể làm việc với dữ liệu Access giống như cách bạn làm với các bảng MySQL cục bộ
Nếu bạn chưa làm như vậy, hãy cung cấp các giá trị cho thuộc tính kết nối bắt buộc trong tên nguồn dữ liệu [DSN]. Bạn có thể sử dụng Quản trị viên nguồn dữ liệu ODBC tích hợp sẵn của Microsoft để định cấu hình DSN. Đây cũng là bước cuối cùng của quá trình cài đặt driver. Xem chương "Bắt đầu" trong tài liệu trợ giúp để biết hướng dẫn sử dụng Quản trị viên nguồn dữ liệu ODBC của Microsoft để tạo và định cấu hình DSN
Để kết nối, hãy đặt thuộc tính DataSource thành đường dẫn đến cơ sở dữ liệu Access
Định cấu hình Cổng SQL
Xem phần thiết lập kết nối với dữ liệu Access dưới dạng cơ sở dữ liệu MySQL ảo. Bạn sẽ định cấu hình dịch vụ điều khiển từ xa MySQL lắng nghe các yêu cầu MySQL từ máy khách. Dịch vụ có thể được cấu hình trong giao diện người dùng SQL Gateway
Tạo Máy chủ LIÊN KẾT và Bảng cho Dữ liệu Truy cập
Sau khi bạn đã định cấu hình và khởi động dịch vụ, hãy tạo máy chủ LIÊN KẾT để đơn giản hóa quá trình tạo bảng LIÊN KẾT
Tạo một máy chủ LIÊN KẾT
Câu lệnh sau sẽ tạo một máy chủ LIÊN KẾT dựa trên Trình điều khiển ODBC để truy cập. Lưu ý rằng tên người dùng và mật khẩu của máy chủ LIÊN KẾT phải khớp với tài khoản người dùng mà bạn đã xác định trên tab Người dùng của Cổng SQL
CREATE SERVER fedAccess FOREIGN DATA WRAPPER mysql OPTIONS [USER 'sql_gateway_user', PASSWORD 'sql_gateway_passwd', HOST 'sql_gateway_host', PORT ####, DATABASE 'CData Access Sys'];
Tạo một bảng LIÊN KẾT
Để tạo bảng LIÊN KẾT bằng máy chủ mới tạo của chúng tôi, hãy sử dụng từ khóa KẾT NỐI và chuyển tên của máy chủ LIÊN KẾT và bảng từ xa [Đơn hàng]. Tham khảo mẫu sau để biết câu lệnh tạo bảng LIÊN KẾT
CREATE TABLE fed_orders [ ..., ordername TYPE[LEN], freight TYPE[LEN], ..., ] ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='fedAccess/orders';
GHI CHÚ. Lược đồ bảng cho bảng LIÊN KẾT phải khớp chính xác với lược đồ bảng từ xa. Bạn luôn có thể kết nối trực tiếp với dịch vụ truy cập từ xa MySQL bằng bất kỳ máy khách MySQL nào và chạy truy vấn SHOW CREATE TABLE để lấy lược đồ bảng
Thực hiện truy vấn
Giờ đây, bạn có thể thực thi các truy vấn đối với các bảng Access LIÊN KẾT từ bất kỳ công cụ nào có thể kết nối với MySQL, điều này đặc biệt hữu ích nếu bạn cần THAM GIA dữ liệu từ một bảng cục bộ với dữ liệu từ Access. Tham khảo ví dụ sau